解析/迭代 Json

我对用 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];

}

对于这个可能很愚蠢的问题,我很抱歉,但我一直试图将其转换为不同类型并在网上搜索解决方案,但我就是想不通。所以如果有人能帮我解决这个问题,我会非常高兴。


慕的地8271018
浏览 139回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP