1

I have a Json string as below and I need to parse them with jsoncpp library of C++; however, even if I try to parse status_code which is the simplest key, I get logicerror. My code to parse json is like this:

Json::Value root = js;

const Json::Value status_code = root["status_code"];

where js is a std::string. I print the root and the results seems normal, but the the second line of code always gives error. Also, I tried Json::Value::get method and nothing changed.

{
  "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"
    }
  ]
}

1 Answer 1

1

I solved my own problem by using Json::Reader. I'm posting the code to help others who will face this problem.

I'm getting the "classes" tag with the code snippet below:

Json::Value root;

Json::Reader reader;

reader.parse(js,root);

const Json::Value classes = root["results"][0]["result"]["tag"]["classes"];
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.