【发布时间】:2017-08-20 18:49:01
【问题描述】:
我有一个 RESTFul 服务,它返回 JSON 格式的列表。 JSON 格式如下所示:
{
"cantidad": 241,
"reply": "6F5HH",
"location": "15 Azua - IP",
"str": "36%",
"date_Sent": "7/14/2017 9:58:31 AM",
"cant": 14,
"vehiculo": "",
"lc": "356612023737986"
},
{
"cantidad": 241,
"reply": "6F5HH",
"location": "15 Azua - IP",
"str": "36%",
"date_Sent": "7/20/2017 11:46:10 AM",
"cant": 1,
"vehiculo": "",
"lc": "356612023737986"
},
{
"cantidad": 241,
"reply": "5UG71",
"location": "AES NO REGISTRADO",
"str": "36%",
"date_Sent": "8/1/2017 1:35:29 PM",
"cant": 16,
"vehiculo": "",
"lc": "357042063498597"
},
{
"cantidad": 241,
"reply": "9LKYH",
"location": "AES NO REGISTRADO",
"str": "52%",
"date_Sent": "8/1/2017 1:38:09 PM",
"cant": 13,
"vehiculo": "",
"lc": "357042063498597"
},
{
"cantidad": 241,
"reply": "A3MA1",
"location": "AES NO REGISTRADO",
"str": "32%",
"date_Sent": "8/1/2017 1:38:09 PM",
"cant": 22,
"vehiculo": "",
"lc": "357042063498597"
}
如您所见,这是一个 5 项列表。我需要做的是生成 JSON,而不用逗号分隔每个项目。所以输出必须是这样的:
{
"cantidad": 241,
"reply": "6F5HH",
"location": "15 Azua - IP",
"str": "36%",
"date_Sent": "7/14/2017 9:58:31 AM",
"cant": 14,
"vehiculo": "",
"lc": "356612023737986"
}
{
"cantidad": 241,
"reply": "6F5HH",
"location": "15 Azua - IP",
"str": "36%",
"date_Sent": "7/20/2017 11:46:10 AM",
"cant": 1,
"vehiculo": "",
"lc": "356612023737986"
}
{
"cantidad": 241,
"reply": "5UG71",
"location": "AES NO REGISTRADO",
"str": "36%",
"date_Sent": "8/1/2017 1:35:29 PM",
"cant": 16,
"vehiculo": "",
"lc": "357042063498597"
}
{
"cantidad": 241,
"reply": "9LKYH",
"location": "AES NO REGISTRADO",
"str": "52%",
"date_Sent": "8/1/2017 1:38:09 PM",
"cant": 13,
"vehiculo": "",
"lc": "357042063498597"
}
{
"cantidad": 241,
"reply": "A3MA1",
"location": "AES NO REGISTRADO",
"str": "32%",
"date_Sent": "8/1/2017 1:38:09 PM",
"cant": 22,
"vehiculo": "",
"lc": "357042063498597"
}
这是我的 .NET WebApi 应用程序的注册方法:
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.Remove(config.Formatters.XmlFormatter); //DEVOLVER SOLO JSON
config.Formatters.JsonFormatter.SerializerSettings.Formatting = Formatting.Indented;
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
【问题讨论】:
-
你为什么要那个无效的 json?
-
@GuaGua0308:原来的 JSON 实际上是正确的。你想把它转换成什么是不正确的。您是否尝试过将所需的 JSON 加载到 JSON 编辑器中?它的形状很糟糕!!!
-
@SirRufo 不,我说的是:一个无效的 json 一直是无效的。。只有你认为它是有效的。
-
@SirRufo 你在没有测试的情况下说的太多了(所以不允许我说出我的想法)。打开你的VS,写
var jobj = JObject.Parse(jsonOPwants);并运行它。然后我们可以进一步讨论。 (我在写 cmets 之前就这样做了)。
标签: c# .net json rest asp.net-web-api