我有一个Json字符串,如下所示,我需要使用C ++的jsoncpp库解析它们;但是,即使我尝试解析最简单的key_code,我也会得到逻辑错误。我解析json的代码是这样的:
Json::Value root = js;
const Json::Value status_code = root["status_code"];
其中js是std :: string。我打印根,结果似乎正常,但第二行代码总是出错。此外,我尝试了Json :: Value :: get方法,没有任何改变。
{
"status_code": "OK",
"status_msg": "All images in request have completed successfully. ",
"meta": {
"tag": {
"timestamp": 1457008532.462851,
"model": "general-v1.3",
"config": "34fb1111b4d5f67cf1b8665ebc603704"
}
},
"results": [
{
"docid": 161641131401527616156105737996754786562,
"status_code": "OK",
"status_msg": "OK",
"local_id": "",
"result": {
"tag": {
"concept_ids": [
"ai_786Zr311",
"ai_pPxqdnP5",
"ai_Pf2b7clG",
"ai_c9n7SB25",
"ai_WTrlNkqM",
"ai_ggQlMG6W",
"ai_62K34TR4",
"ai_hf5ZBGcK",
"ai_9c0Hmcx0",
"ai_6lhccv44",
"ai_pCnxWJZh",
"ai_bmls4LpL",
"ai_TkWkj1sX",
"ai_rsX6XWc2",
"ai_x3vjxJsW",
"ai_4Qjv5PTH",
"ai_lrTHSPdB",
"ai_bBXFkGB1",
"ai_xxnGcd42",
"ai_PpTcwbdQ"
],
"classes": [
"no person",
"room",
"indoors",
"furniture",
"vehicle",
"industry",
"technology",
"production",
"exhibition",
"business",
"contemporary",
"group",
"container",
"building",
"home",
"modern",
"action",
"auto racing",
"seat",
"computer"
],
"probs": [
0.9784166812896729,
0.9754077196121216,
0.974927544593811,
0.9747141003608704,
0.9636767506599426,
0.954016923904419,
0.9406172633171082,
0.9292353391647339,
0.9243901968002319,
0.911110520362854,
0.8961678147315979,
0.8841571807861328,
0.8797860145568848,
0.8792335987091064,
0.869953989982605,
0.8654355406761169,
0.8574825525283813,
0.8546661734580994,
0.8530611991882324,
0.8511127829551697
]
}
},
"docid_str": "799af313d0500ce2648b9a4e20c49902"
}
]
}
答案 0 :(得分:2)
我通过使用Json :: Reader解决了我自己的问题。我发布了代码来帮助其他人解决这个问题。
我得到了#34;班级"标记以下代码段:
Json::Value root;
Json::Reader reader;
reader.parse(js,root);
const Json::Value classes = root["results"][0]["result"]["tag"]["classes"];