需要帮助反序列化json数据

时间:2014-03-01 11:36:54

标签: json vb.net

我有以下json字符串

{
    "Count": 10,
    "Page": 0,
    "Queue": [
        {
            "id": "146648",
            "number": "96599004970"
        },
        {
            "id": "146647",
            "number": "96599004970"
        },
        {
            "id": "146646",
            "number": "96599004970"
        },
        {
            "id": "146645",
            "number": "96599004970"
        },
        {
            "id": "146644",
            "number": "96599004970"
        },
        {
            "id": "146643",
            "number": "96599004970"
        },
        {
            "id": "146642",
            "number": "96599004970"
        },
        {
            "id": "146641",
            "number": "96599004970"
        },
        {
            "id": "146640",
            "number": "96599004970"
        },
        {
            "id": "146639",
            "number": "96599004970"
        }
    ]
}

我正在使用vb.net和newtonstoft json

我做了这些课程

Public Class Queue
    Public Property Count As Integer
    Public Property Page As Integer
    Public Property Msgs As List(Of Msg)
End Class

Public Class Msg
    Public Property id As String
    Public Property number As String
End Class

我使用此代码反序列化此字符串

Dim getQueue as Queue
getQueue = JsonConvert.DeserializeObject(Of Queue)(jsonString)

我该如何重建阵列?或来自该队列对象的retreive数据 任何帮助表示赞赏

3 个答案:

答案 0 :(得分:0)

试试这个。对不起它在C#,因为我不知道VB.net

var JsonStr = JsonConvert.DeserializeObject<Queue>(jsonString);
label1.Text = JsonStr.Count
label2.Text = JsonStr.Page
for (int i = 0; i < JsonStr.Msg.Count; i++)
{
    label3.Text = JsonStr.Msg[i].id;
    label4.Text = JsonStr.Msg[i].number;
}

答案 1 :(得分:0)

以下代码为每个id打印numbermsg值:

For Each msg As Msg In getQueue.Msgs
    Console.WriteLine("id: " + msg.id & ", number: " + msg.number)
Next

答案 2 :(得分:0)

为了正确地反序列化你的json字符串,你的映射类应该是这样的:

Public Class RootObject
    Public Property Count As Integer
    Public Property Page As Integer
    Public Property Queue As List(Of Queue)
End Class

Public Class Queue
    Public Property id As String
    Public Property number As String
End Class

然后你可以这样做:

Dim getQueue as RootObject
getQueue = JsonConvert.DeserializeObject(Of RootObject)(jsonString)
For Each Q As Queue In getQueue.Queue
    'here you can access each Queue object
Next

注意:上面的类定义是从使用http://json2csharp.com/工具生成的C#类转换而来的。这是一个方便的在线工具,用于生成适合映射json的类。

相关问题