VB.NET - 将JSON数据转换为数组

时间:2016-06-20 03:44:15

标签: arrays json vb.net

我有一个JSON结果,我试图使用 Newtonsoft.Json 转换为数组。 我从网站获得的JSON结果与(为了便于阅读)格式相符:

{
"headers":  
    [
        "Shift Date",
        "Shift Number"
    ],
"values":
    [
        ["2016-06-19T00:00:00",0],
        ["2016-06-19T00:00:00",2],
        ["2016-06-19T00:00:00",1]
    ]
}

我发现的代码示例说我应该可以使用

Dim arr As JArray = JArray.Parse(response.Content)

这会导致错误:

An unhandled exception of type 'Newtonsoft.Json.JsonReaderException' occurred in Newtonsoft.Json.dll

Additional information: Error reading JArray from JsonReader. Current JsonReader item is not an array: StartObject. Path '', line 1, position 1.

关于可能导致问题的任何指导?我怀疑这是“标题”,但无法在网上找到有关如何解决的建议

1 个答案:

答案 0 :(得分:0)

您正在使用JArray,但您的输入实际上是一个对象 - 即数据

{..stuff..}

而不是

[ {..stuff..} ]

如果您将输入重组为:

[{
    "headers": [
        "Shift Date",
        "Shift Number"
    ],
    "values": [
        ["2016-06-19T00:00:00", 0],
        ["2016-06-19T00:00:00", 2],
        ["2016-06-19T00:00:00", 1]
    ]
}]

然后,您可以使用JArray.Parse(strJson)方法。

在当前结构中,您应该使用JObject.Parse