下面的代码可以演示典型的读取操作,记得在获取json的值时,一定要判断find() != end(),否则如果直接访问还可以,返回NULL,如果用string或int变量去接收,就会错误退出了。
#include <iostream>
#include "json.hpp"
using namespace std;
using namespace nlohmann;
int main(int argc, char const *argv[])
{
json data = json::parse("{\"code\": 0, \"msg\": \"OK\"}");
if (data.is_discarded()) {
cout << "data is not valid json" << endl;
return -1;
}
if (data.find("code") == data.end()) {
cout << "no code in json" << endl;
return -1;
}
for (auto item: data.items()) {
cout << item.key() << ": " << item.value() << endl;
}
const unsigned short &code = data["code"]; // 这里可以是任何数值类型,short,int,longlong包括unsigned
cout << "code: " << code << endl;
data = json::parse("[1, 3, 5, 7, 9]");
for (int i = 0; i < data.size(); i++) {
cout << i << ": " << data[i] << endl;
}
return 0;
}
下面的文章中包含更全面的操作:http://www.zyiz.net/tech/detail-250507.html