简单好用的C++JSON库CJsonObject,让使用json如使用C++原生的结构体那般方便,随心所欲。
CJsonObject是个优秀的C++JSON库,截止2019年7月31日,CJsonObject开源一年,未经推广就在GitHub上获得130多star和60多fork。CJsonObject是基于cJSON全新开发一个C++版的JSON库,最大优势是轻量,简单好用,开发效率极高。
CJsonObject只有4个文件,拷贝到自己代码里源码级集成即可,无须编译成库,且跨平台和编译器。与大部分json解析库访问多层嵌套json非常麻烦不同,CJsonObject对多层嵌套json的读取和生成使用非常简单。用 CJsonObject 的好处还在于完全不用专门的文档,头文件即文档,看完 Demo 立刻就会用,所有函数都十分通俗易懂。
绝大部分使用JSON的场景下,易用性与开发效率才是第一位的,而不是解析性能。CJsonObject 经过5年超过9个项目的生产环境应用验证其功能稳定性,开源后又被众多开发者用到自己的项目中,绝对是个很好的选择。
许可证:MIT
功能: JSON 解析,JSON 生成
平台: 标准 C/C++ 开发,跨平台
使用说明:将 CJsonObject.hpp、CJsonObject.cpp、cJSON.h、cJSON.c 四个文件加入代码目录,与用户自己的代码一起编译即可。
示例代码:
#include #include #include "../CJsonObject.hpp" int main() { int iValue; std::string strValue; neb::CJsonObject oJson("{\"refresh_interval\":60," "\"dynamic_loading\":[" "{" "\"so_path\":\"plugins/User.so\", \"load\":false, \"version\":1," "\"cmd\":[" "{\"cmd\":2001, \"class\":\"neb::CmdUserLogin\"}," "{\"cmd\":2003, \"class\":\"neb::CmdUserLogout\"}" "]," "\"module\":[" "{\"path\":\"im/user/login\", \"class\":\"neb::ModuleLogin\"}," "{\"path\":\"im/user/logout\", \"class\":\"neb::ModuleLogout\"}" "]" "}," "{" "\"so_path\":\"plugins/ChatMsg.so\", \"load\":false, \"version\":1," "\"cmd\":[" "{\"cmd\":2001, \"class\":\"neb::CmdChat\"}" "]," "\"module\":[]" "}" "]" "}"); std::cout << oJson.ToString() << std::endl; std::cout << "-------------------------------------------------------------------" << std::endl; std::cout << oJson["dynamic_loading"][0]["cmd"][1]("class") << std::endl; oJson["dynamic_loading"][0]["cmd"][0].Get("cmd", iValue); std::cout << "iValue = " << iValue << std::endl; oJson["dynamic_loading"][0]["module"][0].Get("path", strValue); std::cout << "strValue = " << strValue << std::endl; std::cout << "-------------------------------------------------------------------" << std::endl; oJson.AddEmptySubObject("depend"); oJson["depend"].Add("nebula", "https://github.com/Bwar/Nebula"); oJson["depend"].AddEmptySubArray("bootstrap"); oJson["depend"]["bootstrap"].Add("BEACON"); oJson["depend"]["bootstrap"].Add("LOGIC"); oJson["depend"]["bootstrap"].Add("LOGGER"); oJson["depend"]["bootstrap"].Add("INTERFACE"); oJson["depend"]["bootstrap"].Add("ACCESS"); std::cout << oJson.ToString() << std::endl; std::cout << "-------------------------------------------------------------------" << std::endl; std::cout << oJson.ToFormattedString() << std::endl; }
一、简介 CJsonObject 是一个基于cJSON开发的、适用于c++的轻量级的JSON处理器。 开源地址: https://gitee.com/Bwar/CJsonObject.git 二、使用示例 1. 解析一个json格式文件 2.1.1 a.json {"a":"hello"} 2.1.2 解析程序 #include <string> #include <iostream> #inc
#include "CJsonObject.hpp" //CJsonObject下载地址 https://github.com/Bwar/CJsonObject //json解析 neb::CJsonObject json; if (json.Parse(dataStr)) //解析成功返回true { CELLLog_Info(" CJsonObject Pars
https://github.com/Bwar/CJsonObject/blob/master/README_cn.md https://www.cnblogs.com/bwar/p/9191479.html 1. JSON概述 JSON: JavaScript 对象表示法( JavaScript Object Notation) 。是一种轻量级的数据交换格式。 它基于ECMAScr
CJsonObject 1. CJsonObject 介绍 https://github.com/Bwar/CJsonObject CJsonObject 是C++ CJSON 旧版本的新开发版本。CJsonObject最大的优点是重量轻、简单易用,开发效率很高。CJsonObject 比 CJSON 简单得多,更易于使用。 Bwar 首次使用 cJSON 是在 2013 年开发移动推送项目。当时
前言 jsoncpp 库 link jsoncpp是一个可以与JSON 进行交互的C++库 示例代码 link 1. 解析 json 对象 #include <iostream> #include <string> #include <jsoncpp/json/json.h> using namespace std; int main() { // 待解析的 json 字符串 s
myReadJson.h: #include <stdio.h> #include <iostream> #include <vector> #include <string> #include "CJsonObject.hpp" using namespace std; using namespace neb; class MyMap { public: int a;
json数据: { "api":"setDatas", "apiVer" : 0, "packSn" : 0, "operate" : "command", "option" : ["none"], "param" : { "id": 1, "datas": [1, 2, 3, 4, 5, 6] }, "endFlg":"api" } 接收函数: CMDFN(setDa
所有包 | 方法 包 system.web.helpers 继承 class CJSON 源自 1.0 版本 $Id: CJSON.php 3204 2011-05-05 21:36:32Z alexander.makarow $ 源码 framework/web/helpers/CJSON.phpCJSON用于转换PHP数据到JSON格式基从JSON格式转换为PHP数据。 公共方法 隐藏继承方法
python-cjson 是一个适用于 Python 的快速 JSON 编码器/解码器。 JSON代表JavaScript Object Notation,它是一种基于文本的轻量级数据交换格式,易于人类读取/写入以及易于机器解析/生成。JSON完全独立于语言,并且在大多数编程语言中都有多种实现,使其成为数据交换和存储的理想选择。 该模块是用 C 编写的,与其他直接用python编写的python
Lua CJSON 为 Lua 语言提供高性能的 JSON 解析器和编码器,其性能比纯 Lua 库要高 10 到 20 倍。Lua CJSON 完全支持 UTF-8 ,无需依赖其他非 Lua/LuaJIT 的相关包。
php-cjson 是快速的 JSON 解析和生成的 PHP 库,基于 cjson 底层 C 库开发。 安装 $/path/to/phpize$./configure --with-php-config=/path/to/php-config$make && make install 示例 encode $arr = array( 1, "string", array("key"
cJSON-plus基于cJSON的功能扩展库。主要适用于非强交互场景,如终端操作,要使用到cJSON处理json数据。如果你有协议数据模板,使用该库可以减少很多业务逻辑的设计,减少代码的冗余。 cJSON-plus里面包含了一些基于cJSON而实现的函数。 例如: 向前添加键值对。 修改指定域的字符串。 遍历cJSON对象。 其他格式化输出对象。(支持列表和树形等) 遍历修改所有项功能。 修改指
Lua CJSON is a Lua C module that provides fast JSON parsing and encoding support for Lua. Project homepage: http://www.kyne.com.au/~mark/software/lua-cjson.php OpenResty includes its own fork of this