码迷,mamicode.com
首页 > Web开发 > 详细

jsoncpp接口总结

时间:2015-10-14 00:24:33      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:

value类型总结

enum ValueType
{
      nullValue = 0, ///< ‘null‘ value
      intValue,      ///< signed integer value
      uintValue,     ///< unsigned integer value
      realValue,     ///< double value
      stringValue,   ///< UTF-8 string value
      booleanValue,  ///< bool value
      arrayValue,    ///< array value (ordered list)
      objectValue    ///< object value (collection of name/value pairs).
};

获取类型函数Json::Value中的type函数

value值获取函数

const char *asCString() const;
std::string asString() const;
Int asInt() const;
UInt asUInt() const;
Int64 asInt64() const;
UInt64 asUInt64() const;
LargestInt asLargestInt() const;
LargestUInt asLargestUInt() const;
float asFloat() const;
double asDouble() const;
bool asBool() const;

数组类型操作

数组解析

Json::Value root;
Json::Reader reader;

if(!reader.parse(str_data, root)){
    // error processing
}

// 这里一定要注意,如果不是array类型,这里的size函数返回的是key的个数
int array_size = root.size();
for(i=0;i<array_size;i++){
    Json::Value obj = root[i];
    // do something with obj
}

数组解析的时候一定要注意size()在不是数组类型的时候也是有值返回的,此时返回的是json中key的个数。

构建json数组类型

Json::Value arrayjson;

for (iterator) {
    Json::Value jsonobj;
    jsonobj["a"] = "b";
    arrayjson.append(jsonobj);
}

json转化为string

Json::FastWriter writer;
str = writer.write(root);

 

总体来说json作为存储或者网络协议,操作简单,扩展性好;但是其劣势也非常明显:

1. 二进制数据支持不好,经常需要借助base64来解决问题;

2. 占用存储空间大,浪费磁盘和网络带宽;

3. 解析效率低;

jsoncpp接口总结

标签:

原文地址:http://www.cnblogs.com/shadowgao/p/4876215.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!