2013-03-19 42 views
-2

我剛剛開始使用wxJSON的幫助來處理JSON對象。當我嘗試使用單個JSON對象時(例如下面給出的例子),它工作正常,它工作正常。wxJSONOBJECTARRAY - 訪問所需的鍵值對

{ 
    "wxWidgets" : 1 
    { 
    "Version" :1 
    { 
     "Major" : 2, 
    }, 
    "Languages" : 
    [ 
     "C++", 
     "Python", 
     "Perl", 
     "C#/Net" 
    ] 
    } 
} 

但是,當JSON對象中有值的數組時,我無法解析JSON對象並提取所需的鍵值對。

實施例:

[ { 
     "wxWidgets" : 1 
     { 
     "Version" :1 
     { 
      "Major" : 2, 
     }, 
     "Languages" : 
     [ 
      "C++", 
      "Python", 
      "Perl", 
      "C#/Net" 
     ] 
     } 
    } 
    { 
     "wxWidgets" : 2 
     { 
     "Version" :2 
     { 
      "Major" : 3 
     }, 
     "Languages" : 
     [ 
      "java", 
      "j2ee", 
      "j2me" 
     ] 
     } 
    } 
] 
當單個對象,我訪問這樣的元素

wxJSONValue root; //this will have the json object created above. 
wxString c = root[_T("wxWidgets")][_T("Version")].AsString(); // to get the version. 

如何做到這一點的情況下,存在的JSONOBJECT秒的數組作爲給定在第二個例子中?

+1

我還沒有和wxWidgets的工作之前,但如果它像其他JSON庫什麼,你首先必須引用發生在數組(最可能是對象0,因爲它是c),然後說root [_T(「wxWidgets」)] [_ T(「Version」)]。 So root [0] [_ T(「wxWidgets」)] [_ T(「Version」)] – AlexLordThorsen 2013-03-19 06:19:41

+0

嘿,謝謝。我不知道爲什麼我沒有這樣簡單的事情;)..它的工作原理:) – Darzen 2013-03-19 06:32:41

+0

不客氣,我會添加一個答案,因爲我是對的。 – AlexLordThorsen 2013-03-19 06:34:43

回答

0

既然你使用數組,

root[_T("wxWidgets")][_T("Version")]

不尊重的JSON對象數組(在這種情況下,指數0)的第一個對象。該代碼必須能反映您使用的是陣列現在,所以:

root[0][_T("wxWidgets")][_T("Version")]