2013-03-19 21 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")]