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

相关文章
|
13天前
|
存储 JSON JavaScript
Python字典和JSON字符串相互转化方法
【2月更文挑战第18天】
67 3
|
2天前
|
SQL 存储 JSON
Hive 解析 JSON 字符串数据的实现方式
Hive 提供 `get_json_object` 函数解析 JSON 字符串,如 `{"database":"maxwell"}`。`path` 参数使用 `$`、`.`、`[]` 和 `*` 来提取数据。示例中展示了如何解析复杂 JSON 并存储到表中。此外,Hive 3.0.0及以上版本内置 `JsonSerDe` 支持直接处理 JSON 文件,无需手动解析。创建表时指定 `JsonSerDe` 序列化器,并在 HDFS 上存放 JSON 文件,可以直接查询字段内容,方便快捷。
|
6天前
|
SQL JSON 监控
实时计算 Flink版产品使用合集之直接将 JSON 字符串解析为数组的内置函数如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
11天前
|
JSON JavaScript 前端开发
js将json字符串还原为json对象
【5月更文挑战第14天】js将json字符串还原为json对象
43 1
|
13天前
|
存储 JSON DataWorks
DataWorks产品使用合集之DataWorks将 MongoDB 中的数组类型写入到 DataWorks 的单个字段时,表示为字符串格式而非 JSON 格式如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
29 3
|
13天前
|
JSON 分布式计算 大数据
MaxCompute产品使用合集之大数据计算MaxCompute 要提取JSON字符串中的所有key-value对,我该怎么操作
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
13天前
|
JSON 运维 Kubernetes
云效产品使用报错问题之流水线中配置了AppStack,构建时下载的制品内容为json字符串,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
13天前
|
JSON 数据格式 Python
py如何把字符串转出json
py如何把字符串转出json
10 0
|
13天前
|
JSON 数据格式
Json字符串与QVariantList 对象相互转换
Json字符串与QVariantList 对象相互转换
17 0
|
13天前
|
JSON 并行计算 API
使用CJSON/Nlohmann:快速简便地在C/C++中处理JSON数据
使用CJSON/Nlohmann:快速简便地在C/C++中处理JSON数据
334 0

热门文章

最新文章