【发布时间】:2021-10-07 06:08:42
【问题描述】:
我正在尝试在我的 C# 项目中读取 .json 文件并计算另一个对象中的对象数量。
.json 文件已修复,我无法对其进行任何更改。
例如
.json 文件如下所示:
{
"X": {
"x": "...",
"x1": "..."
},
"Y": {
"y": { }
"y1": { },
"y2": { },
"y3": { },
"y4": { },
"functiongroup": {
"function1": {
"A": "...",
"B": "...",
"C": "...",
"D": "...",
"subfunction": {
"sub1": {
"a": "...",
"b": "...",
"c": "..."
}
}
},
"function2": {
"A": "...",
"B": "...",
"C": "...",
"D": "...",
"subfunction": {
"sub1": {
"a": "...",
"b": "...",
"c": "...",
"d": "..."
},
"sub2": {
"a": "...",
"b": "...",
"d": "..."
},
"sub3": {
"a": "...",
"b": "...",
"c": "..."
}
}
},
"function3": {
"A": "...",
"B": "...",
"C": "...",
"D": "...",
"subfunction": {
"sub1": {
"a": "...",
"b": "...",
"c": "...",
"d": "..."
},
"sub2": {
"a": "...",
"b": "...",
"d": "..."
},
"sub3": {
"a": "...",
"b": "...",
"c": "..."
}
}
},
"function2": {
"A": "...",
"B": "...",
"C": "...",
"D": "...",
"subfunction": {
"sub1": {
"a": "...",
"b": "...",
"c": "...",
"d": "..."
},
"sub2": {
"a": "...",
"b": "...",
"d": "..."
},
"sub3": {
"a": "...",
"b": "...",
"c": "...""
},
sub4": {
"a": "...",
"b": "...",
"c": "..."
}
}
}
}
}
现在我想知道每个函数中有多少子函数并在控制台中打印数量。 所以在显示的示例中,它看起来像这样:
输出
1, 3, 3, 4
我尝试过多种变体,例如
var JsonFile = System.IO.File.ReadAllText(@"PathtoFile");
var token = JToken.Parse(JsonFile);
var FG = token.Value<JArray>("subfunction");
int count = FG.Count();
Console.WriteLine(count);
【问题讨论】:
-
根据问题中的类型名称,您似乎正在使用 Json.NET。这个库也有它自己的标签,如果是这种情况,你可以添加它。由于
using指令不在你的问题中,我不能确定,所以我不会自己添加标签。 -
HM 看起来你有属性而不是数组项(在 JSON 数组中表示为
[]) -
您的文件不是有效的 JSON。它必须以
{或[开头,并且缺少一些结束标记。能否提供一个有效的文件? -
如何将 json 文件解析为字符串并尝试查找“子函数”字符串的数量?是的,这可能很棘手......但是:)
-
@lufefon 您能否修改您的问题以发布 有效 json。 This website 可以帮助您识别当前 json 的问题。