我打電話給webservice,它以下面的格式返回json中的響應。在c中解析一個動態變化的json文件#
{
"parent":
{
"child": {
"key1": value1,
"key2": value2
}
}
}
以上的迴應是當父母只有一個孩子。但是,當有在母體一個以上的孩子,則響應如下所示:
{
"parent": [
{
"child": {
"key1": "value1",
"key2": "value2"
}
},
{
"child": {
"key1": "value1",
"key2": "value2"
}
}
]
}
因此,當有一個以上的子元素,父是JArray並且當僅存在子元素,父是JObject。
現在我很難動態解析子元素的內容,因爲它在JObject時會拋出索引錯誤。
有人可以解釋我們如何解析JObject和JArray期間的內容。
目前我正在檢查父標記,因爲它是否是JObject/JArray和相應的解析,但這是一個漫長而乏味的過程。
有沒有其他方法相同。
以下是代碼,我現在使用的
if(jsonfile["parent"].getType() == "JObject")
{
string value1 = (string)jsonfile["parent"]["child"]["key1"]
}
else
{
string value1 = (string)jsonfile["parent"][0]["child"]["key1"];
}
是否有任何其他方法,我們可以得到值1,不檢查父是否JObject或JArray?
您標記json.net,如果你是確實使用它,將json轉換爲對象並使用該對象會更容易[反序列化](http://www.newtonsoft.com/json/help/html/DeserializeObject.htm)。也看到這個問題:https://stackoverflow.com/questions/4535840/deserialize-json-object-into-dynamic-object-using-json-net – Esko
沒有childX屬性不會改變。我糾正了錯誤。 – Dipumon
你想解析你的JSON到C#類或? –