JSONCPP的使用笔记

来源:互联网 发布:mac死机怎么办 编辑:程序博客网 时间:2024/06/04 23:21
由于之前没有查看JSONCPP的相关文档,直接使用了,在JSON没匹配时,老是导致程序崩溃,后来懒得查相关说明,直接写了几个简单例子验证一下,结果如下:
数组不能使用isString()等函数判断
如 [ { } { } ]
否则崩溃
需要先使用isObject()判断

以下情况,需先判断是否为数组,不然会崩溃
char t[] = "{\"a\":\"123\"}";
    Json::Value json;
    Json::Reader reader;
    reader.parse(tjson);
    json.size(); //返回1
    for(int i=0; i<json.size(); i++)
    {
        json[i].isString();  //崩溃
    }  

"a":null
isArray()会返回true,
isString()返回false
asInt()返回0 
asBool()返回false
asCString() 崩溃

当不存在成员时
isArray(); 返回 true
.isNull(); 返回 true
.isInt();返回 false
.isString();  返回false
asInt()返回0 
asBool()返回false
asCString() 崩溃

类型不同时解析会崩溃

长整形:
{"a":123123123123123123
isArray(); 返回false
isNull(); 返回false
isInt();返回 false
isString();  返回false
isDouble(); 返回 true
value["a"].asBool();返回 true
value["a"].asDouble();返回正确数字
value["a"].asCString();崩溃
value["a"].asInt();  崩溃
0 0