1.在Keil5中安装json设备包
去Keil的官方下载设备包:Keil5官方设备包
安装完添加到工程中,加入**#include <jansson.h>**头文件可以使用,如下图所示:
2.如何使用?
关于如何使用可以参考官方的文档,可以通过单击它,进行阅读。
当然,用这个库主要是对数据进行打包和解析,怎样快速使用这个库呢?
3 如何用来解析
假如有一串字符串需要解析,例如:text[] = {“A”,“Zhangjie”,“B”,“Zhangsan”,“C”,“Lihua”};
这明显是个json的字符串,在Python中只需要 import json,当然在C语音中使用它也像Python使用它一样简单。
json_t = *root 这个是Json的数据类型,所有的操作都是在操作它
json_error_t error; 这个error是输出错误的调试信息,具体的请阅读文档
root = json_loads(text,0,&error); 没错就是把字符串加载进去,看看是不是符合json格式
如果失败会返回0
if(!root) 失败
{
printf("error: on line %d: %s\n", error.line, error.text );
输出错误的信息,会告诉你在第几行,哪个单词出错了
}
else 成功
{
json_t str; 定义变量
str = json_object_get(root,"A"); 把A中的数据取出来
printf("%s",json_string_value(str)); 一定要注意要把json数据变成字符串
json_decref( root ); 一定要释放空间
}
通过以上简单的操作,就把A中的数据取了出来。
另外 当你发现json_loads(...)并不能满足你的需求时,可以试试
json_loadb(...); 具体可以看文档,这个函数可以实现想让多少个数据放进去就放进去
因为我只用了操作字符串,还有很多的操作
4.如何打包数据
下面例子是从文档中摘取的 因为我用它的主要目的是解析字符串,关于数组的我没仔细看
json_t *root 这个是Json的数据类型,所有的操作都是在操作它
/* 建立一个空的json数据 */
root = json_pack("{}");
/* 建立的Json数据为: {"foo": 42, "bar": 7} */
root = json_pack("{sisi}", "foo", 42, "bar", 7);
/* Like above, ':', ',' and whitespace are ignored */
root = json_pack("{s:i, s:i}", "foo", 42, "bar", 7);
{sisi} 中 s将null结尾的UTF-8字符串转换为JSON字符串
i代表转换int为JSON整数
文档中有好多参数,更详细请阅读文档
未完,待续。。