如何确定JSON是否是cpp中的对象或数组,以及对象是否将其转换为数组?

时间:2015-06-05 20:57:09

标签: c++ arrays json jsonobject json-api

我一直在寻找,但找到了关于java的答案。

很长一段时间,我收到JSON响应作为数组,即使我只有一个响应。 例如:

  {"intervention":

    [
     { 
      "id":"3",
              "subject":"dddd",
              "details":"dddd",
              "beginDate":"2012-03-08T00:00:00+01:00",
              "endDate":"2012-03-18T00:00:00+01:00",
              "campus":
                       { 
                         "id":"2",
                         "name":"paris"
                       }
           }
     ]
}

现在我可以将它作为数组或作为对象来回收。意味着这些[ , ]不再出现。 正如您可能猜到的那样,我的代码会因为我将其用作数组而崩溃。

我想做那样的事情:

if (parsedJson["intervention"] == jsonObject])
   covertObjectToArray

我试过(伪):

std::string tmp = parsedJson["intervention"].asString()
if (firstChar is "{")
{
   concat : "[ + tmp + ] ";
   parseStringBackToJSon
}

但它崩溃了!

你可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

如果我从你的初始问题和评论中得到了正确的结果,那么你想要转换JSon树中的一个元素,如果它是一个包含该对象的数组的简单对象。我也不熟悉那个lib,但对我来说它就像是。

Value & v = parseJSon["intervention"];
if(v.isObject()) {
 Value vcopy = v;
 v.clear();
 v.append(vcopy);
}

基于API文档的幻想代码。