簡體   English   中英

使用 Newtonsoft 解析 json

[英]Parse json using Newtonsoft

在下面的 json 示例中,我在解析和訪問我想要的數據時遇到問題。

我想為每個項目記錄檢索 HeroName 和 HeroAmount :

我知道我可以序列化並表現為一個數組,但我無法訪問提到的數據。

{"id":"Main","name":"MAP","data":{},"children":
    [
        {
            "id":"ID_2317",
            "HeroName":"Name1322",
            "children":
            [
                {
                "id":"ID_23317_1",
                "name":"Name_1",
                "data":
                    {
                        "HeroAmount":231979
                    }
                }
            ]
        },
        {
            "id":"ID_2318",
            "HeroName":"Name1323",
            "children":
            [
                {
                "id":"ID_23318_1",
                "name":"Name_2",
                "data":
                    {
                        "HeroAmount":231977
                    }
                }
            ]
        }
    ]
}

你可以這樣做:

   Dim strBuf As String = File.ReadAllText("c:\test4\json5.txt")

    Dim jOb As JObject = JObject.Parse(strBuf)

    Dim MyChildren As JToken = jOb.SelectToken("children")

    For Each MyChild As JToken In MyChildren
        Debug.Print("Hero Name = " & MyChild.SelectToken("HeroName"))
        Debug.Print("Hero Amount = " & MyChild.SelectToken("children[0].data.HeroAmount"))

    Next

因此,“走”json 非常簡單。

因此,在循環內部:

Debug.Print("Hero Name   = " & MyChild.SelectToken("HeroName").ToString)
Debug.Print("Hero Amount = " & MyChild.SelectToken("children[0].data.HeroAmount").ToString)
Debug.Print("--")

Output:

Hero Name   = Name1322
Hero Amount = 231979
--
Hero Name   = Name1323
Hero Amount = 231977
--

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM