JSON和jsoncpp库

  JSON是一种轻量级的数据交换格式,易于人编写和阅读,同时也易于机器解析和生成。

  JSON建构于两种结构:对象(名称/值对的集合)、数组(值的有序列表),其中名称是一个字符串,值的类型包括:字符串、数字、布尔值、对象、数组、null值。

  jsoncpp是一个使用C++语言实现的面向对象的json库,提供的接口有3个核心类:Reader、Writer、Value。

  Reader类负责从字符串或者输入流中加载JSON文档,并进行解析,生成代表JSON文档的Value对象;Writer类负责将内存中的Value对象转换成JSON文档,输出到文件或者字符串中;Value类的对象代表一个JSON值,既可以代表一个文档,也可以代表文档中一个值。

  要创建代表如下JSON文档的Value对象:

  {

"Type": "USER_INFO",

"Data":

{

"id": 1,

"name": "spring",

"server":

{

"homeserver": 1001,

"visitserver": 1003

},

"skillids":

[

1,3,5

]

}

  }

  需要如下代码:

Value Root(objectValue);

Root["Type"]="USER_INFO";

Value Data(objectValue);

Data["id"]=1;

Data["name"]="spring";

Value _server(objectValue);

_server["homeserver"]=1001;

_server["visitserver"]=1003;

Data["server"]=_server;

Value _skillids(objectValue);

_skillids.append(1);

_skillids.append(3);

_skillids.append(5);

Data["skillids"]=_skillids;

Root["Data"]=Data;

时间: 2024-09-29 10:58:13

JSON和jsoncpp库的相关文章

json-cpp 库使用

Json-cpp 是一个使用c++开发的面向对象的json库. 核心数据结构 Reader是json-cpp数据的读取器,可以从文件流,字符串中读取json数据,使用下面的接口: boolparse( const std::string &document, Value &root, bool collectComments = true); boolparse( std::istream &is, Value &root, bool collectComments = t

c++库之jsoncpp库

官方网址https://github.com/open-source-parsers/jsoncpp. 我是以源码的形式使用的,从官网下载源码后解压,然后copy相应的.h和.cpp文件到你的项目目录.编译使用即可.用起来也非常简单,主要以数组的形式进行 使用.下面从自己的项目中复制出一段代码作为示例: json数据: { "msg": "", "status": "1", "message": { &qu

编译jsoncpp库以及要注意的问题

原创文章,转载请注明原作者与本文原始URL. 版本:jsoncpp-src-0.5.0.zip简介:jsoncpp是用cpp实现的json库,可以拼装,解析,生成json串.我们要把他编译成动态库.这个库使用 scons 来组织工程的,并且要用python编译,而不是我熟悉的Makefile.要编译的文件全部位于 ./src/lib_json,其实就3个.cpp文件.为了编译方便,我自己写了Makefile如下: g++ json_reader.cpp json_value.cpp json_w

iOS下JSON反序列化开源库

iOS下JSON字符串反序列化成对象,在正式的项目中比较常见.如下几个常用开源库,可以根据个人喜好任选其一: 1. JSONModel: https://github.com/icanzilb/JSONModel 2. MJExtension: https://github.com/CoderMJLee/MJExtension 3. Mantle: https://github.com/Mantle/Mantle 其中,JSONModel对数组元素反序列化,需要定义一个跟数组元素Model的类名

shell下有操作json对象的库

http://kernelpanic.im/blog/2012/03/08/shell-manipulate-json/ Json.org推荐了两个:Jshon和JSON.sh 其中JSON.sh是完全用shell实现的json parser,似乎不能做到添加/修改/删除原有json的结构.而jshon是用c实现的,依赖于jansson,使用MIT协议,目的就是为了替代由 grep/sed/awk写的fragile adhoc parsers,相比之下python/perl/ruby显得过于笨重

第三方库 jsoncpp 读写json

一.摘要 JSON 的全称为:JavaScript Object Notation,顾名思义,JSON 是用于标记 Javascript 对象的,JSON 官方的解释为:JSON 是一种轻量级的数据传输格式. 本文并不详细介绍 JSON 本身的细节,旨在讨论如何使用 C++ 语言来处理 JSON.关于 JSON 更具体的信息,可参见 JSON 官网:http://www.json.org. 二.本文选择处理 JSON的 C++ 库 本文选择一个第三方库 jsoncpp 来解析 JSON.json

一个用C++写的Json解析与处理库

以下转自:http://blog.csdn.net/ggicci/article/details/10600403什么是Json?这个库能做什么? JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. Json 是一种轻量的数据交换格式,和 XML 一样在 Web 开发中非常常用.在 Ajax 的应用中,前台基本上会用

json解析库的使用

前言: 使用官方json.cpp解析库解析json文件 #include <json\json.h> #pragma comment(lib, "lib_json.lib") /************************/ /*json写操作*/ /************************/ void json_write_test() { Json::Value json_temp; json_temp["name"] = Json::V

C++中使用Json的方法

使用 C++ 处理 JSON 数据交换格式 一.摘要 JSON 的全称为:JavaScript Object Notation,顾名思义,JSON 是用于标记 Javascript 对象的,JSON官方的解释为:JSON 是一种轻量级的数据传输格式. 本文并不详细介绍 JSON 本身的细节,旨在讨论如何使用 C++ 语言来处理 JSON.关于 JSON 更具体的信息,可参见 JSON 官网:http://www.json.org. 二.本文选择处理 JSON的 C++ 库 本文选择一个第三方库