I have a sample file "sample.json" which contains 3 json objects
{"A":"something1","B":"something2","C":"something3","D":"something4"}{"A":"something5","B":"something6","C":"something7","D":"something8"}{"A":"something9","B":"something10","C":"something11","D":"something12"}
(there is no newline in above file)
I want to read all three json objects using jsoncpp.
I'm able to read the first object but not after it.
Here is relevant portion of my code
Json::Value root; // will contains the root value after parsing.
Json::Reader reader;
std::ifstream test("sample.json", std::ifstream::binary);
bool parsingSuccessful = reader.parse(test, root, false);
int N = 3;
if (parsingSuccessful)
{
for (size_t i = 0; i < N; i++)
{
std::string A= root.get("A", "ASCII").asString();
std::string B= root.get("B", "ASCII").asString();
std::string C= root.get("C", "ASCII").asString();
std::string D= root.get("D", "ASCII").asString();
//print all of them
}
}
I believe your JSON file is syntactically invalid. See www.json.org. Your file should contain a single object or array, e.g. in your case it should like this:
[{"A":"something1","B":"something2","C":"something3","D":"something4"},
{"A":"something5","B":"something6","C":"something7","D":"something8"},
{"A":"something9","B":"something10","C":"something11","D":"something12"}]
Then you can access each object of the array in your loop:
for (Json::Value::ArrayIndex i = 0; i != root.size(); i++)
{
std::string A = root[i].get("A", "ASCII").asString();
// etc.
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With