【问题标题】:wxJSONOBJECTARRAY - accessing the required key value pairwxJSONOBJECTARRAY - 访问所需的键值对
【发布时间】:2013-03-07 17:11:36
【问题描述】:

我刚刚开始在 wxJSON 的帮助下使用 JSON 对象。当我尝试处理单个 JSON 对象(下面给出的示例)时,它工作正常,它工作正常。

 {
   "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.

如果有第二个示例中给出的JSONOBJECTs 数组,我该怎么做?

【问题讨论】:

  • 我以前没有使用过 wxwidgets,但如果它与其他 JSON 库类似,您首先必须引用数组中的位置(很可能是对象 0,因为它是 c)然后说 root [_T("wxWidgets")][_T("版本")]。所以 root[0][_T("wxWidgets")][_T("Version")]
  • 嘿,谢谢。我不知道为什么我没有这样简单的事情;)..它有效:)
  • 不客气,我会添加一个答案,因为我是对的。

标签: c++ json wxwidgets


【解决方案1】:

由于您使用的是数组,

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

不尊重 JSON 对象中数组的第一个对象(在本例中为索引 0)。代码需要反映您现在正在使用数组,所以:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 2019-04-03
    • 1970-01-01
    相关资源
    最近更新 更多