【问题标题】: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 视图中你会看到正常的输出。

    【讨论】:

      猜你喜欢
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-12
      相关资源
      最近更新 更多