我对用 C# 解析 Json 还很陌生,我遇到了一个小问题,我无法解决。
我的数据看起来像这样:
{
"languages": {
"ja_lang": {
"data": {
"name": "Japanese"
},
"files": [["ja",
"Japanese File",
"lang_ja.txt"]]
},
"en_lang": {
"data": {
"name": "English"
},
"files": [["en",
"English File",
"lang_en.txt"]]
}
}
}
现在我想迭代语言中的项目,只使用对象名称以“ja_”开头的项目(在这种情况下,它只能使用“ja_lang”而忽略“en_lang”),然后提取里面的名称数据和文件中的“lang_ja.txt”。
为了在 C# 中解析 Json,我下载了 Newtonsoft.Json 库并想出了这个:
dynamic json_obj = JsonConvert.DeserializeObject("json string");
// when debugging language holds { "ja_lang": { "data": { "name": "Japanese" }, "files": [["ja", "Japanese File", "lang_ja.txt"]] } }
foreach (var language in json_obj.languages)
{
// not sure how i can access the object-name
/*if(!language.StartsWith("ja_"))
continue;*/
// Exception: 'Newtonsoft.Json.Linq.JProperty' does not contain a definition for 'data' - Not sure why it is treated as a property?
var name = language.data.name;
var file = language.files[2];
}
对于这个可能很愚蠢的问题,我很抱歉,但我一直试图将其转换为不同类型并在网上搜索解决方案,但我就是想不通。所以如果有人能帮我解决这个问题,我会非常高兴。
相关分类