【问题标题】:How to convert List of string(which are already in individual json data) into a single array of json result in c#?如何将字符串列表(已经在单个json数据中)转换为c#中的单个json数组?
【发布时间】:2019-10-01 02:57:49
【问题描述】:
所以我有一个包含 Indivdual json 数据的字符串列表,因为它在 c# .netCore 中它已经包含双引号的转义字符('\'),但实际上它显示了我知道的正确值,但接下来我想要一个所有这些单独的 json 结果的数组作为整个 json 结果。我正在做的是直接序列化这个字符串列表,如下面的代码所示,但它添加了额外的转义字符。有没有其他更好的方法可以使用 JsonResult 或其他东西来做到这一点?
string json = JsonConvert.SerializeObject(ListOfIndiviualJson);
【问题讨论】:
标签:
c#
json
asp.net-core
asp.net-core-mvc
asp.net-core-webapi
【解决方案1】:
如果我理解正确,ListOfIndiviualJson 是一个 List<string>,其中包含类似的字符串
{
"key1": "value",
...
}
你想把它序列化成这样的:
[
{
"key1": "value",
...
},
...
]
您可以将Parse每个JSON字符串转换成JObject,然后将List<JObject>序列化:
JsonConvert.SerializeObject(ListOfIndiviualJson.Select(JObject.Parse).ToList());
显然,如果 ListOfIndiviualJson 实际上包含 JSON 数组而不是 JSON 对象,请使用 JArray.Parse。
【解决方案2】:
如果我理解正确,您有一个存储为 I 字符串的 json 对象列表,但现在您希望它作为字符串数组。
string json = @"
[
{ ""test1"" : ""desc1"" },
{ ""test2"" : ""desc2"" },
{ ""test3"" : ""desc3"" }
]";
JArray a = JArray.Parse(json);
var _len = a.Count; // will be 3
然后你可以把它转换成一个字符串,在 json 视图中你会看到正常的输出。