电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>Exjson C/C++高性能JSON解析库

Exjson C/C++高性能JSON解析库

2022-06-22 | zip | 0.04 MB | 次下载 | 免费

资料介绍

授权协议 LGPL
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件

软件简介

C语言JSON解析库:Exjson

什么是Exjson?

Exjson是一款高性能的基于Flex & Bison的?JSON?解析器Xserver引擎自带,其他需要使用的只需要引入几个头文件和源文件即可

Exjson适应场合

Exjson适合于在需要在底层C语言或者C++语言层面使用?JSON?功能的场景。目前大部分接口使用的都是?JSON?格式传输,后面增加?xml解析库

注意

Exjson支持注释,Exjson中注释以?#?或者//?开头,一直延续到行尾,如下是合格的?Exjson格式

{
    "name": "Exjson", // 名字:Exjson
    "version": "1.0", # 版本号
    "platform": [ "MacOSX", "Linux", "Windows" ]
}

APIs

// 生成一个EXJSON对象
EXJSON_API EXJSON * INIT_EXJSON();

// 生成一个 string: long int 的键值对
EXJSON_API int add_object_int(EXJSON *exjson, char *key, long val);

// 生成一个 string: double 的键值对
EXJSON_API int add_object_double(EXJSON *exjson, char *key, double val);

// 生成一个 string : string 的键值对
EXJSON_API int add_object_string(EXJSON *exjson, char *key, char *val);

// 生成一个 string: {} 的键值对
EXJSON_API int add_object_object(EXJSON *exjson, char *key, void *val);

// 生成一个 string: [] 的键值对
EXJSON_API int add_object_array(EXJSON *exjson, char *key, void *val);
// 上面添加方法的一个通用函数
EXJSON_API int add_object_ptr(EXJSON *exjson, char *key, void *val, unsigned char val_type);

// 生成一个 long int 的一个数组元素
EXJSON_API int add_array_int(EXJSON *exjson, long val);

// 生成一个 double 的一个数组元素
EXJSON_API int add_array_double(EXJSON *exjson, double val);

// 生成一个 string 的一个数组元素
EXJSON_API int add_array_string(EXJSON *exjson, char *val);

// 生成一个 对象{} 的一个数组元素
EXJSON_API int add_array_object(EXJSON *exjson, void *val);

// 生成一个 数组的 的一个数组元素
EXJSON_API int add_array_array(EXJSON *exjson, void *val);
// 上面方法的通用函数
EXJSON_API int add_array_ptr(EXJSON *exjson, void *val, unsigned char val_type);

// 打印 EXJSON 信息
PRINT_EXJSON(exjson);

// 从 EXJSON结构中获取数据
EXJSON_API void *exjson_get_val_from_key(EXJSON *exjson, char *key);
EXJSON_API void *exjson_get_val_from_index(EXJSON *exjson, int index);

// 编码JSON字符串为EXJSON结构
EXJSON_API extern EXJSON *decode_json(char *json_string);
// EXJSON结构解码为JSON字符串
EXJSON_API char *encode_json(EXJSON *exjson);
// 使用完毕后,需要释放内存
EXJSON_API void destroy_exjson(EXJSON *exjson);

示例

#include 
#include "exjson.h"


int main(int argc, char *argv[])
{
    EXJSON *v = decode_json("{\n"
                            "    "b": 100,\n"
                            "    "a":{\n"
                            "        "a": "b"\n"
                            "    }\n"
                            "}");
	// 返回的字符串因为分配了内存,需要手动释放
    char *str = encode_json(v);
    printf("%s", str);
    free(str);
    destroy_exjson(v);
    return 0;
}
?

下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1NS1081/NS1081S/NS1081Q USB 3.0闪存数据手册
  2. 0.40 MB   |  4次下载  |  2 积分
  3. 2光伏并网逆变器原理
  4. 7.31 MB   |  3次下载  |  2 积分
  5. 3T20电烙铁原理图资料
  6. 0.27 MB   |  2次下载  |  免费
  7. 4PL83081 双路恒流同步降压转换器技术手册
  8. 3.34 MB   |  1次下载  |  免费
  9. 5PL88052 4.8V至60V输入,5A,同步降压转换器技术手册
  10. 3.36 MB   |  1次下载  |  免费
  11. 6LX8201微孔雾化驱动芯片电路图资料
  12. 0.15 MB   |  1次下载  |  免费
  13. 7PC6200_7V直流电机驱动器技术手册
  14. 0.47 MB   |  次下载  |  免费
  15. 8恒温晶体振荡器(OCXO)FOC-2D:20.6×20.6mm在通信基站和测试设备中的应用参数规格
  16. 485.75 KB  |  次下载  |  免费

本月

  1. 1如何看懂电子电路图
  2. 12.88 MB   |  329次下载  |  免费
  3. 2RK3588数据手册
  4. 2.24 MB   |  14次下载  |  免费
  5. 3PC5502负载均流控制电路数据手册
  6. 1.63 MB   |  12次下载  |  免费
  7. 4STM32F10x参考手册资料
  8. 13.64 MB   |  12次下载  |  1 积分
  9. 5OAH0428 V1.0英文规格书
  10. 5.86 MB   |  8次下载  |  免费
  11. 6NS1081/NS1081S/NS1081Q USB 3.0闪存数据手册
  12. 0.40 MB   |  4次下载  |  2 积分
  13. 7PID控制算法学习笔记资料
  14. 3.43 MB   |  3次下载  |  2 积分
  15. 8光伏并网逆变器原理
  16. 7.31 MB   |  3次下载  |  2 积分

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935132次下载  |  10 积分
  3. 2开源硬件-PMP21529.1-4 开关降压/升压双向直流/直流转换器 PCB layout 设计
  4. 1.48MB  |  420064次下载  |  10 积分
  5. 3Altium DXP2002下载入口
  6. 未知  |  233089次下载  |  10 积分
  7. 4电路仿真软件multisim 10.0免费下载
  8. 340992  |  191415次下载  |  10 积分
  9. 5十天学会AVR单片机与C语言视频教程 下载
  10. 158M  |  183349次下载  |  10 积分
  11. 6labview8.5下载
  12. 未知  |  81599次下载  |  10 积分
  13. 7Keil工具MDK-Arm免费下载
  14. 0.02 MB  |  73818次下载  |  10 积分
  15. 8LabVIEW 8.6下载
  16. 未知  |  65990次下载  |  10 积分