【发布时间】:2020-04-27 21:19:22
【问题描述】:
我有各种输入 JSON 格式的数据,它们都包含一个特定的键名 terminalSize。这是我知道的唯一一块。 JSON 树的总数或 JSON 树中 terminalSize 的确切深度将永远是未知数,并且可能会发生变化。
我正在寻找一种 C# 解决方案来循环遍历 JSON 字符串的每个子项并找到 terminalSize 然后获取值。
我已经成功地尝试过了,但它只有在 terminalSize 位于 JSON 的第一级时才有效:
var list = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(jsonString);
var dict = list.SelectMany(d => d).ToDictionary(p => p.Key, p => p.Value);
var terminal = dict["terminalSize"];
示例 1。
{
"status": "success",
"data": {
"terminalSize": 3766505.46,
"totalTerminalSize": 3766505.46
},
"message": null
}
示例 2。
{
"lastUpdated": 1588020678,
"terminalData": {
"terminalSize": "451679852",
"totalTerminalSize": "2100000000"
},
"terminalValueSeries": {
"8x7": 2.33,
"8x6": 3.73,
"8x5": 4.49,
"8x4": 3.68,
"8x3": 13998,
"8x2": 274936,
"8x1": 5.09
}
}
示例 3。
{
"terminalSize": "492612346.17",
"terminalStatus": "online"
}
【问题讨论】:
-
terminalSize只出现一次吗?