如何在VB.NET Newtonsoft中解析Json的孩子(后续)

时间:2013-04-13 14:50:01

标签: vb.net json parsing

JSon的新手,我学会了如何做基本的JSon parings(从这个问题和答案中学习:How to Parse Json children in VB.NET Newtonsoft

感谢这个问题和答案,我设法使用VB.Net

读取类似的数据

但是我的数据与子项目略有不同 - 它有额外的括号,我还没有找到如何阅读子项的方法。

ps:我在原始问题中修改了Json以证明这一点 -

"CcFull": [

     [      
        {
          "Email": "sample.cc@emailDomain.com",
          "Name": "John Sample"
        }
     ] ,
     [
            {
          "Email": "another.cc@emailDomain.com",
          "Name": "Mike Sample"
                }
     ] 
],

1 个答案:

答案 0 :(得分:1)

由于您的JSON与我在引用的问题中回答的略有不同,您必须稍微区分一些事情。

您的“CcFull”对象实际上是一个数组数组,由[]括号表示。由于冒号后面的第一个符号是一个开括号,它表示一个数组。下一个符号也是一个开括号,所以它是一个数组数组。

要使用Json.Net对象取消引用它,我们必须将项值作为JArray对象获取。然后我们可以迭代该对象中的数组值,就像在另一个问题中一样。像这样:

Dim results As List(Of JToken) = o.Children().ToList
For Each item As JProperty In results
    item.CreateReader()
    Select Case item.Name
        Case "CC"
            Dim strCC = item.Value.ToString

        Case "CcFull"
            Dim ccArray As JArray = item.Value    'Get the top-level array
            Dim strEmail As String
            Dim strName As String
            For Each subitem As JObject In ccArray.Values
                strEmail = subitem("Email")
                strName = subitem("Name")
            Next
    End Select
Next