首页 > 解决方案 > 解析 json 响应中的字符串数组

问题描述

我必须接受以下格式的 json 响应,它可以在字符串数组中有许多“字段”。在循环中解析它的最简单方法是什么,我可以提取“字段值”并对它们进行一些操作?

 {
   "fields":
 [
   "/field1/{field1value}/field2/{field2value}/field3/{field3value}",
   "/field1/{field1value}/field2/{field2value}/field3/{field3value}"
 ]
 }

标签: c#.netjsonjson.net

解决方案


您可以通过这种方式解析该Json并获取单行数据

// As an example for your input data.....
string json =  "{\"fields\":[\"/field1/{field1value}/field2/{field2value}/field3/{field3value}\",\"/field1/{field1value}/field2/{field2value}/field3/{field3value}\"]}";

// Json.NET JObject.Parse
var lines = JObject.Parse(json);
// Remove comment with LinqPad 
// lines.GetType().Dump();
// Not really needed to explicitly use the Properties method...
foreach (var x in lines.Properties())
{
    // Remove comment with LinqPad 
    // x.GetType().Dump();
    foreach (var k in x.Value)
    {
        // Remove comment with LinqPad 
        // k.GetType().Dump();
        string dataLine = k.Value<string>();
        Console.WriteLine(dataLine);
    }
}

我建议使用 LinqPad 在变量行 x 和 k 上使用 Dump 方法尝试此代码,以了解 Parse 返回的 JObject 的内部结构。


推荐阅读