序列化元组<字符串、字节>而不返回m_Item1、m_Item2
本文关键字:返回 Item2 Item1 元组 字符串 字节 序列化 | 更新日期: 2023-09-27 17:56:48
我正在开发一个 ASP.NET Web Api应用程序,其中包含.NET Framework 4.6.1,C#和 JSON.Net。
我在返回元组列表时遇到问题。我得到这个json:
[
{
"m_Item1": "88962730000000378995",
"m_Item2": 2
}
]
我正在使用以下代码:
HttpResponseMessage response = null;
List<Tuple<string, byte>> exCodes = null;
[ ... ]
response = Request.CreateResponse(HttpStatusCode.OK, exCodes);
但我想得到这个:
[ {
"Item1": "88962730000000378995",
"Item2": 2
}
]
要获取该代码,我必须使用此代码:
HttpResponseMessage response = null;
List<Tuple<string, byte>> exCodes = null;
[ ... ]
var j = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
j.SerializerSettings.ContractResolver = new DefaultContractResolver();
response = Request.CreateResponse(HttpStatusCode.OK, exCodes);
但我不确定这段代码j.SerializerSettings.ContractResolver = new DefaultContractResolver();
是否会影响服务的其余部分。
有没有另一种方法可以在不使用new DefaultContractResolver();
的情况下获得我想要的 Json?
您可以创建一个匿名对象:
var anon = exCodes.Select(x => new { x.Item1, x.Item2 });
response = Request.CreateResponse(HttpStatusCode.OK, anon);