CJsonObject

基于 cJSON 的 C++ 版 JSON 库
授权协议 MIT
开发语言 C/C++
所属分类 Web应用开发、 JSON/BSON开发包
软件类型 开源软件
地区 国产
投 递 者 杜俊楚
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

简单好用的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

托管地址: 码云gitee   Github

功能: JSON 解析,JSON 生成

平台: 标准 C/C++ 开发,跨平台

使用说明:将 CJsonObject.hppCJsonObject.cppcJSON.hcJSON.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