【STM32】使用keil提供的JSON库——Jansson【转】
来源:互联网 发布:万方数据库和中国知网 编辑:程序博客网 时间:2024/06/16 09:57
来自:http://blog.csdn.net/yannanxiu/article/details/52712723
前言
在这篇文章中博主简单介绍了如何把cJSON移植到STM32上,实际上,keil环境下已经有官方的JSON库了——Jansson。下面是讲解如何导入和使用Jansson。
下载地址:http://www2.keil.com/mdk5/partnerpacks/
安装并导入工程
下载Keil.Jansson.1.0.0.pack后双击安装,打开keil工程,点击下图的图标配置Json库到工程里。
接下来按图点击,最后点击OK。
最后工程目录下面就有会Jansson的lib文件了。
测试代码
之后可以使用下面的代码测试打包json数据。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
打印
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
其他信息
- Jansson官网:http://jansson.readthedocs.io/en/latest/
- Jansson API文档:http://jansson.readthedocs.io/en/latest/apiref.html
- keil版本:uVision 5.21a
注意事项
- 解析和生成json的时候要保证有足够的堆空间,如果堆大小不够会处理失败。博主一般设置3KB的heap。
关于中文编码
在评论区有位朋友问为什么用UTF-8编码打包的Json打印出来是乱码。经过博主几天的查资料,现在问题是这样的:实际上用Jansson编码UTF-8的中文是没有问题的,有问题的是串口的打印问题。
这是我测试串口打印中文,首先说明几点,我的文件保存格式是keil默认的格式,也就是ANSI,大家打开记事本然后点击另存为,在保存路径下面可以选择其编码格式:
把串口打印出来的数据拷贝到Notepad++,拷贝前先新建一个文档并以ANSI编码:
拷贝过去后没有出现任何乱码,可见串口打印显示的是ANSI编码字符。
在Notepad++的菜单栏,选择「格式」,「以UTF-8编码」,有无BOM都行,然后看到后面的乱码正常显示中文了:
而且,如果使用非UTF-8字符打包Json,Jansson是会返回「Invalid UTF-8 string」错误信息的,当然前提是使用json_pack_ex
函数。
- 1
- 2
- 3
- 4
下面放上本小节测试代码。
测试代码
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
本文最后编辑时间:2016年12月
- 【STM32】使用keil提供的JSON库——Jansson
- 【STM32】使用keil提供的JSON库——Jansson【转】
- 使用keil提供的JSON库——Jansson
- STM32 keil printf的使用
- STM32 keil printf的使用
- c json解析jansson
- 如何使用STM32提供的DSP库进行FFT
- STM32下Keil IDE中Printf函数的使用
- 转:在Keil MDK环境下使用STM32 V3.4库“小”教程
- 使用Keil MDK以及标准外设库创建STM32工程
- 使用Keil MDK以及标准外设库创建STM32工程
- 使用Keil MDK以及标准外设库创建STM32工程
- STM32的Keil常用简介
- json——android提供的json解析类
- (2)stm32开发之使用Keil MDK以及标准外设库创建STM32工程
- stm32开发之使用Keil MDK以及标准外设库创建STM32工程
- 总结——stm32之keil开发环境搭建
- stm32笔记01——keil问题03.keil5安装
- stm32学习笔记 F1系列外部中断EXTI
- TOP100summit 2017:亚马逊Echo音箱能够语音识人,华人工程师揭秘设计原理
- OpenCV3 椒盐噪声python语言实现
- 图片转Base64字符串经Http传输问题
- ubuntu14.04.5 + 1080ti + CUDA8.0 深度学习服务器配置折腾手记
- 【STM32】使用keil提供的JSON库——Jansson【转】
- 【P3927】SAC E#1
- 使用序列化实现对象的拷贝
- linux 命令行快捷操作
- iOS上线流程
- Swing中的自定义布局(绝对布局,null布局)
- 怎么做好饮料代理?如何发展市场
- python 装饰器实现单例
- oracle基本操作-常用操作2