2016-06-20 224 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

不用擔心。謝謝羅賓。將接受,因爲它已經解決了初始查詢。 –