jsoncpp Json::LogicError, когда я пытаюсь разобрать объект

У меня есть строка Json, как показано ниже, и мне нужно проанализировать их с помощью библиотеки jsoncpp C++; однако, даже если я попытаюсь проанализировать status_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"
    }
  ]
}

person cagatayodabasi    schedule 04.03.2016    source источник


Ответы (1)


Я решил свою проблему, используя Json::Reader. Я отправляю код, чтобы помочь другим, кто столкнется с этой проблемой.

Я получаю тег "classes" с фрагментом кода ниже:

Json::Value root;

Json::Reader reader;

reader.parse(js,root);

const Json::Value classes = root["results"][0]["result"]["tag"]["classes"];
person cagatayodabasi    schedule 04.03.2016