cJSON生成json字符串

简介: 嵌入式开发中如果需要上云常常需要处理json字符串,这时候可以调用json库如:cJSON,jasson等。本文介绍cJSON库使用

cJSON库介绍

cJSON是使用C语言编写的JSON数据解析器,轻量级。使用MIT开源协议。
库地址 CJSON

库的移植安装

从github把压缩文件下载到本地,打开文件,调用cjson.c和cjson.h即可。

#include "cjson.h"

库的使用

要使用cJSON库首先要对cJSON语法有一定了解。

语法概要:

作者认为cJSON中最重要的概念是对象。json中的对象有两种形式{}或【】。可以通俗地理解为一个大括号或一个中括号对应一个对象。(其实分别是js对象和js数组,但这个数组也可以当做对象)。
在一个对象中可以有多个键值对:key-value。键值对存储着我们所需的数据。
对象中还可以包含别的对象,这就是对象的嵌套。比如在一个{}中可以加入数组【】

cJSON常用API

创建对象:创建一个JSON对象

cJSON_CreateObject()

生成字符串数据

cJSON_CreateString()

添加数据项:将上一步生成的数据项与其键值一起添加到对象中

cJSON_AddItemToObject(,,)

生成字符串:将json对象的内容转化为字符串

cJSON_Print()

创建数组:生成数组对象

cJSON_CreateArray()

取数组成员

cJSON_AddItemToArray()

案例分享

作者在stm32机上新建了一个工程,需要通过串口将JSON字符串传输到通信模块BC20上,以连接华为云。
与华为云物联网平台通信的JSON字符串格式如下:

"{"services": [{"service_id": "***服务ID号***","properties":{"longitude":****.***,"weight":****.*****,"latitude":***.****,"status":*,"rank":*,"color":**.***}}]}"

我们现在需要生成JSON对象并且添加所需的数据
方法:
1.数{}【】个数。我们可以发现有三个{}和一个【】,那么我们需要创建四个对象
2.向最里层对象写数据
3.将里层对象添加到上一层对象里
4.重复操作2.3

相关文章
|
1月前
|
JSON JavaScript 前端开发
JavaScript实现字符串转json对象的方法
JavaScript实现字符串转json对象的方法
|
15天前
|
XML JSON 前端开发
json字符串CSS格式化
完成以上步骤后,你便能在网页中看到格式化后的JSON数据,它们将按照CSS定义的样式进行展示,使数据更易于阅读和理解。通过有效地结合JSON和CSS,你可以创建出更加丰富且易于交互的网页内容。
154 64
|
10天前
|
XML JSON 前端开发
json字符串CSS格式化
json字符串CSS格式化
20 4
|
30天前
|
JSON Java 数据格式
Java系列之:生成JSON字符串
这篇文章介绍了两种在Java中生成JSON字符串的方法:使用`JSONObject`类及其`toJSONString`方法来动态生成,以及手动拼接字符串的方式来创建JSON格式的字符串。
Java系列之:生成JSON字符串
|
22天前
|
JSON Go 数据格式
Go实现json字符串与各类struct相互转换
文章通过Go语言示例代码详细演示了如何实现JSON字符串与各类struct之间的相互转换,包括结构体对象生成JSON字符串和JSON字符串映射到struct对象的过程。
13 0
|
2月前
|
存储 JSON Java
Java对象转换为JSON字符串
在Java开发中,常需将数据对象转换为JSON存储,如使用Fastjson库。要将Java对象转为JSON,可调用`JSON.toJSONString(obj)`;反向转换则用`JSON.parseObject(str, Class)`。
|
2月前
|
JSON 数据格式
Unsupported Media Type,传入的字符串数据:这里应该是Json
Unsupported Media Type,传入的字符串数据:这里应该是Json
|
2月前
|
JSON 数据格式
Navicate数据报错之Bad Request,发送端口测试的时候,使用JSON字符串,而不是Text
Navicate数据报错之Bad Request,发送端口测试的时候,使用JSON字符串,而不是Text
|
2月前
|
JSON Java 数据格式
前后端数据交换,JSON基础语法和JSON数据和Java对象转换,最快的对象转换,JSON{““}字符串如何写User{id=1,username=‘zhangsan‘,password=‘123‘}
前后端数据交换,JSON基础语法和JSON数据和Java对象转换,最快的对象转换,JSON{““}字符串如何写User{id=1,username=‘zhangsan‘,password=‘123‘}
|
3月前
|
JSON 数据格式

热门文章

最新文章