c# - 解析 json 响应中的字符串数组
问题描述
我必须接受以下格式的 json 响应,它可以在字符串数组中有许多“字段”。在循环中解析它的最简单方法是什么,我可以提取“字段值”并对它们进行一些操作?
{
"fields":
[
"/field1/{field1value}/field2/{field2value}/field3/{field3value}",
"/field1/{field1value}/field2/{field2value}/field3/{field3value}"
]
}
解决方案
您可以通过这种方式解析该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 的内部结构。
推荐阅读
- css - CSS 网格中的静态 Div 过渡到填充屏幕
- css - 除主 div 外的响应块
- java - POI 3.17 NPE 从 CellComment 检索 ClientAnchor
- angularjs - Promise 的问题
- angular - 如何在 Angular5/Ionic4 中手动控制@ngx-progressbar/core 进度条的进度
- python - selenium 中的鼠标滚动模拟 - python
- sql-server-2012 - 在 2 节点 SQL Server 2012 群集中的一个节点上卸载 2 个实例
- ios - Memory leak, in do-catch block. iOS, Swift
- mysql - CSV import rounds data to be imported in column DECIMAL(30, 20)
- ruby-on-rails - Errno::ENOENT: 没有这样的文件或目录@rb_sysopen