所以我有一个使用cURL的JSON字符串,我正在尝试使用JSON for Modern C ++(nlohmann :: json)解析数据。这是我的代码:
double retValue(string data) {
string str;
double value = 0;
try {
auto jsonData = json::parse(data.c_str());
str = jsonData["layer"][1]["Page"]["Number"];
value = stoi(str);
}
catch(json::parse_error& e) {
cout << "Error: " << e.what() << endl;
return 0;
}
return value;
}
因此在PHP中,json_decode可以很好地解码为数组,并且可以通过这种方式轻松解析值,但是我在使用C ++和该库时遇到了麻烦。我在运行时收到以下错误,但可以正常编译:
抛出'nlohmann :: detail :: type_error'实例后调用terminate what():[json.exception.type_error.305]无法将operator []与对象一起使用 中止(核心已弃用)
JSON数据类似于我要解析的数据,我认为多维是问题所在,并且我没有正确处理数据。
{
"layer": {
"1": {
"Page": {
"Number": 3.14
}
}
}
}
有人能指出我正确的方向吗?
答案 0 :(得分:2)
C ++是一种强类型语言,必须使用正确的数据类型:
str = jsonData["layer"]["1"]["Page"]["Number"];
但是在PHP中,您访问data[1]
,与data["1"]