2016-06-20 187 views
0

我有一个JSON结果,我试图使用Newtonsoft.Json将其转换为数组。 我的JSON结果我从网站上得到的是沿(格式化的可读性)行:我发现VB.NET - 将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. 

有什么可以导致问题的指导?我怀疑这是一些与“头”,但无法在网上找到如何解决

回答

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

+0

谢谢。我无法控制数据的外观(来自外部网站)。 如果我只是添加方括号我的数组有2列和一行。将这些数据处理成可以处理的数据的方式是什么?如果我使用JObject,是否给出一个数组或单个项目(道歉,因为这对我来说都是新的) –

+0

@StephenPefanis - 我认为将Json转换为数据表的方法构成了一个新问题!如果你觉得它对你有帮助,请随时接受我的回答。 –

+0

不用担心。谢谢罗宾。将接受,因为它已经解决了初始查询。 –