2015-07-21 48 views
0

我在 「的responseText」 JSON字符串讀的Json內節點

然後我反序列化使用

var getJson = JsonConvert.DeserializeObject(responseText); 

該字符串我得到Josn這樣 My Json Output

現在我想得國家名稱>address_components

我想讀的那個節點,其子節點包含類型國家

你可以看到

results > 0 > address_components > 8 > types > 0 
+0

@downvoter:評論在這裏。 –

+0

這裏需要三個for循環,一個for循環遍歷每個結果列表,然後inner循環遍歷每個結果[i]的address_components列表以遍歷每個address_component,然後再遍歷一個循環遍歷類型在每個address_component [j]中列出,在這裏你檢查是否需要輸入[k]的條件,即是否是國家。 –

回答

4

DeserializeObject結果是一個對象。如果它是一個動態對象,那麼最好。你可以像使用數組或字典一樣檢索子項目(取決於json子項目是什麼)。

 dynamic receivedData = JsonConvert.DeserializeObject<dynamic>(json); 

     var addresses = receivedData["results"][0]["address_components"]; 
     var firstAdress = addresses[0]; 

還記得要正確命名變量和函數。 getJson不是一個好名字,因爲它不檢索json。我會將它重命名爲retrievedData什麼的。

編輯: 使用動態的原始示例不起作用。

+1

但我'retrieveData'是對象類型。所以我怎麼能這樣寫'retrieveData [「results」]' –

+0

試過了,確實沒有工作。你應該使用動態。 (.NET 4.0) – RvdK

+0

或者你可以嘗試DeserializeAnonymousType – RvdK