首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

使用cJSON解析和构建JSON字符串

前言 其实之前的两篇博文已经介绍了json格式和如何使用cJSON来解析JSON: 使用cJSON解析JSON JSON简介 当时在MCU平台上使用时,会出现时间长了死机的情况,在调用cJSON_Print...cJSON_Delete(root); //调用cJSON_Print时才需要 这一点在嵌入式开发平台要格外注意。...JSON的构建: 简单的键值对 JSON对象作为键的值 JSON数组 JSON数组的嵌套 JSON的构建 cJSON是一个基于C语言的JSON解析,这个非常简单,只有 cJSON.c和 cJSON.h...由于JSON的解析之前已经介绍过了:使用cJSON解析JSON,所以本篇博文主要介绍使用cJSON来构建JSON,强大的cJSON在构建JSON上也是非常的简单。...源码: https://sourceforge.net/projects/cjson/ JSON官方网站: http://www.json.org/json-zh.html 历史精选 【2019北京国际消费电子博览会

2.7K10

使用CJSON实现XML与JSON格式的相互转化

由于这两个平台一个是使用json格式的数据,一个是使用xml格式的数据,要实现它们二者的对接就涉及到这两个数据格式的转化,在查阅相关资料的时候发现了这个CJSONcjson是使用c编写的,它轻巧易用...,在网上查了相关的资料后决定在json格式的存储于解析这块采用cjson,而xml就简单的来解析字符串。...cjson中常用的几个函数简介 cJSON_Parse 该函数需要传入一个json格式的字符串,函数会将这个字符串转化为json格式保存起来,函数会返回一个表示json对象的指针,如果传入json格式字符串有误...cJSON_AddItemToObject,需要向将他们转化为json对象然后插入,为了方便中提供了一个宏来方便插入数字值,它的参数与cJSON_AddItemToObject类似,只是最后一个参数是一个数字值...另外在遍历的时候需要注意的是它的值,其实这块可以使用cjson结构的type来做更精准的判断,之前我在写这块的代码的时候没有仔细的查看的源代码,所以简单的利用valuestring指针来判断,如果是字符串那么在字符串的两侧加上引号

2.3K20

conan入门(五):conan 交叉编译引用第三方示例

@《Conan官方文档》 在上一篇博客《conan入门(四):conan 引用第三方示例》我们以cJSON为例说明了如何在项目中引用一个conan 包。...在物联应用的大背景下,C/C++开发跨平台交叉编译的应用是非常广泛的。在使用conan来管理C/C++包(制品)的环境下,如何实现对交叉编译的支持呢?...示例程序conan_example,以JSON格式输出使用的cJSON的版本号。...(arm) 先要安装arm平台的cjson,显然,conan中央仓库没有预编译好的arm版本的cJSON,我们需要通过定义环境变量CONAN_CMAKE_TOOLCHAIN_FILE指定工具链文件,...对于第三方我们不需要每次都编译,可以上传到私有制品 conan upload cjson/1.7.13 -r ${repo} --all # ${repo}为私有制品的名字,下同 下次再执行conan

1.4K30

LuaJit交叉编译移植到ARM Linux

这里选择LuaJit在嵌入式Linux系统使用,LuaJit交叉编译也比较简单,没有第三方的依赖,直接交叉编译源码即可。...例如,如果您在 Windows 或 macOS 主机上为嵌入式 Linux 或 Android 进行编译,则需要将TARGET_SYS=Linux添加到下面的示例。...> 然后我们在编译个json的扩展,json在实际开发中用的比较多,这里可以下载一个lua-cjson进行交叉编译一下,源文件也在上面的码云链接里下载。.../install/include/luajit-2.0/ -fpic -o lua_cjson.o lua_cjson.c arm-none-linux-gcc -c -O3 -Wall -pedantic...strbuf.o fpconv.o 文件比较少,编译完成后生成cjson.so,这个和平时Linux的动态名字规则不太一样,前面不用“lib”开头。

31120

Linux Socket 收发Json

如果对你有帮助,麻烦点个在看或点个赞,感谢~ 不管是Qt开发还是linux 嵌入式应用开发,一个人的核心竞争力还是不断思考,也就是不断琢磨。...下面的程序主要是Linux C Socket 读取JSON文件并传输,然后再写入文件,其中使用了cJSON,关于cJSON不过多介绍,主要介绍整体的思路。 1....*parseRoot = NULL; cJSON *levelItem = NULL; parseRoot = cJSON_Parse(recvdata); if (parseRoot...*parseRoot = NULL; parseRoot = cJSON_Parse(recvbuf); char *out = cJSON_Print(parseRoot...小结 编译JSON时需要链接linux的数学 自己琢磨如何拆解函数功能 应用程序也主要是调用别人的api,那么你的核心竞争力是什么呢 ? 如需程序工程可在公众号后台留言。

4.6K20

cmake:VS2015和GCC编译cJSON

cJSON是基于ANSI C的跨平台JSON解析开源,在嵌入式应用中使用比较广泛, cJSON支持CMAKE编译,本文以脚本形式提供了使用CMAKE基于VS2015/Windows以及GCC/MinGW...环境要求 cmake 这是必须的编译工具 Visual Studio 2015 OR MinGW for windows gcc for linux Visual Studio 2015 编译脚本 msvc_build.bat...要求cJSON源码文件夹与msvc_build.bat脚本在同一级文件夹 执行以下脚本会编译出cJSON动态、静态,以及Debug和Release版本并安装到 release\cJSON_windows_vc_x86...源码文件夹与gnu_build.sh脚本在同一级文件夹 执行以下脚本同会编译出cJSOn动态、静态,并安装到release/cJSON-$machine 文件夹下 如果未指定环境变量BUILD_TYPE...recursive https://gitee.com/l0km/cjson.build.git 然后执行其中的msvc_build.bat或gnu_build.sh就可以编译出你想要的cJSON

1.2K10

基于NXP i.MX28 MPU的疫情监控平台3-监控平台实现

"isShowAdd": true } } 3.Qt界面的实现 之前的应用程序,是使用的Qt5版本开发的,Qt5自带QJson解析类,而Qt 4没有带QJson,所以只能使用第三方JSON解析...,我这里选择的小巧的cJSON解析: https://sourceforge.net/projects/cjson/ 只包含两个文件:cJSON.c和cJSON.h,把这两个文件添加到工程里就行了。...)) ipAddress = QHostAddress(QHostAddress::LocalHost).toString(); return ipAddress; } 桌面Linux...桌面Linux效果 4.在开发板上运行Qt程序 如果在桌面运行正常,就可以使用iMX287A开发套件来构建工程,生成可以在iMX287A运行的程序,使用scp命令传输到开发板上还需要使用udhcpc命令来自动获取路由器获取的...开发板运行效果 这个版本是上一个版本的,右上角没有显示开发板的IP地址,和成功失败次数统计,最新版本的程序已经添加了这个功能。 桌面Linux版效果: ?

87510

用C写一个web服务器(三) Linux下用GCC进行项目编译

绕了好久,终于来到了本篇文章的主题:项目编译,主要介绍一些用 GCC 在 linux 下项目编译链接的步骤。...例如:C的数学函数math.h的动态文件名为libm.so,那么我们编译连接文件时就需要添加-lm的选项。...另外静态和动态文件搜索目录顺序不一样,下面分别详细介绍: 静态 静态文件一般是以.a为后缀的文件,它在编译连接时会将文件的内容全部添加到可执行文件,在编译连接完成后,静态文件便不再影响可执行文件...lib 下面是一个动态的编译CmakeList,将解释放在注释。...参考文件(精挑细选): GCC工作过程以及动态静态链接 Linux动态文件搜索路径 cmake使用示例与整理总结

1.4K100

【吃灰开发板复活】DIY全志V3s随身终端屏幕适配,LVGL以及各种外设驱动移植教程

在上周的文章中介绍了一款因作者想要学习Linux而动手DIY的终端设备V3S-PI, 《梦回2004!我用全志V3s做了个成本100元,功能媲美MP4的随身终端》:梦回2004!...2.4寸LCD彩屏适配 LCD彩屏使用SPI接口与主控连接,由于各家屏幕初始化代码不同,所以st7735r.c文件在原来的基础上,我们只需修改st7735r_pipe_enable这个函数的代码即可。...libcurl获取天气信息方式 为了丰富功能,作者还通过libcurl实现了获取天气信息的功能,通过回调函数处理获取到的JSON数据,并使用lvgl显示天气信息。...它首先使用cJSON对获取到的数据进行解析,并找到对应的天气信息字段。...的相关函数将天气信息设置到对应的标签上。

25110

我用STM32MP1做了个疫情监控平台3—疫情监控平台实现

桌面Linux版本的运行效果: ? YA157C开发板实现效果: ? 2.数据接口的获取 疫情监控平台的实现,简单的说,就是数据的展示,而数据从哪里来呢?..."isShowAdd": true } } 3.Qt界面的实现 之前的桌面应用程序,是使用的是Qt5版本开发的,Qt5自带QJson解析类,而Qt 4没有带QJson。...为了适配带有Qt 4的板子,我使用了第三方JSON解析。...这里选择的是小巧的cJSON解析: https://sourceforge.net/projects/cjson/ 如果你的板子是Qt 4的,那么程序不用修改,直接交叉编译运行即可使用。...这个界面是上一个版本的,右上角没有显示开发板的IP地址和成功失败次数统计,最新版本的程序已经添加了这个功能。 桌面Linux版效果: ?

1.2K30

为全志D1开发板移植LVGL日历控件和显示天气

利用TCP封装HTTP包请求天气信息 Linux还真是逐步熟悉,现在才了解到Linux即没有原生的GUI,也没有应用层协议栈,所以要实现HTTP应用,必须利用TCP然后自己封装HTTP数据包。...既然是开发Linux API的C程序,当然利用cJSON来帮助进行数据解析了。本人使用的是从网上搜到的一个百度网盘分享。...因为cJSON会用到math,而它需要“-lm”来动态链接。...本例设置为32,即4字节的ARGB8888格式。 2、时间获取 86板的Tina Linux可以通过C time轻松地获得本地时间等数据。...2)上篇实现的时间显示案例,通过lvgl定时器,每秒获取本地数据,此处在定时器回调再增加一个每到正分钟发送“Linux条件变量”。

15210
领券