车联网V2X-BSM消息JSON包解析
遇到一个需求,解析BSM消息的JSON包,网上下载cJSON.h和cJSON.h,然后解析BSM1.json文件。
BSM1.json文件内容如下:
{"ego_infor":[{"msgCnt":0,"id":15416284,"timeStamp":"1.615275863e+12","latitude":31.00083665,"longitude":121.0002046,"elevation":"","speed":0,"heading":90,"length":400,"width":180,"safeExt":{"aaa":1,"bb":1}},{"msgCnt":1,"id":15416284,"timeStamp":"1.615275863e+12","latitude":31.00083665,"longitude":121.0002046,"elevation":"","speed":0.0005859375,"heading":90,"length":400,"width":180,"safeExt":{"aaa":2,"bb":2}}]}
解析代码如下:
#include <stdio.h>
#include "cJSON.h"
#include <stdlib.h>FILE *fp = NULL;cJSON *json;char *out;char *line = NULL;int main() {fp = fopen("D:\\bsm1.json", "r");if(NULL == fp){printf("load file fail!\n");return -1;}fseek(fp,0L,SEEK_END); /* 定位到文件末尾 */int length = ftell(fp);printf("ftell:%d\n",length);line = (char*)malloc(sizeof(char)*(length+1));fseek(fp,0L,SEEK_SET); /* 定位到文件开头 */ fread(line,length,sizeof(char),fp);//printf("line:%s\n",line); json=cJSON_Parse(line); //获取整个大的句柄// out=cJSON_Print(json); //这个是可以输出的。为获取的整个json的值cJSON *arrayItem = cJSON_GetObjectItem(json,"ego_infor"); //获取这个对象成员cJSON *object = cJSON_GetArrayItem(arrayItem,1); //因为这个对象是个数组,获取第一个元素所以写下标为0cJSON *item = cJSON_GetObjectItem(object,"msgCnt"); printf("msgCnt:%d\n",item->valueint);item = cJSON_GetObjectItem(object,"id");printf("id:%ld\n",item->valueint);item = cJSON_GetObjectItem(object,"timeStamp");printf("timeStamp:%s\n",item->valuestring);cJSON_Delete(json);close(fp);free(line);
}
cJSON文件下载链接:下载链接
车联网V2X-BSM消息JSON包解析相关推荐
- 问题解决:Golang的json包解析字段失败
引言 这个问题出现在解析一个json的配置文件时,排错了很久,最后和狗勋一起解决了这个奇怪的问题. 正文 其实这个问题并不难,因为Golang自带json包,所以我们要做的其实就是在需要解析的结构体中 ...
- 如何在Swift3中获取Json包的内容(unwrap Json package)
我想在这个帖子里面总结两个问题:一个是通过ReST获取Json的语句,这个比较简单 另一个是如何将Json包一层一层转存为字典,并最终通过keyword: String获得所需内容的方法 废话不说,来 ...
- 基于QT的【第一个项目】设计+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作
基于QT的第一个项目+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作 第一阶段 网络编程局域网TCP/IP聊天QT实现 main.c ma ...
- JSON数据解析及gson.jar包
从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送. 服务器端的编程语言只能以如下 3 种格式返回数据: HTML XML JSON JSON一种简单的数据格式,比xml更轻巧. JS ...
- java json解析jar包,解析json常用jar包
13.轻量级的 JSON API:内置了一个轻量级的 JSON API 14.响... 1.加入 Jackson.jar? 2.在配置文件中配置 json 的映射? 3... 和json都是一种数据交 ...
- c语言组json包,json格式解析和libjson的用法介绍(关于cjson的使用方法)
在阅读本文之前,请先阅读下<Rss Reader实例开发之系统设计>一文. Rss Reader实例开发中,进行网络数据交换时主要使用到了两种数据格式:JSON与XML.本文主要介绍JSO ...
- Json文件解析(上)
Json文件解析(上) 代码地址:https://github.com/nlohmann/json 自述文件 alt=GitHub赞助商 data-canonical-src="https: ...
- Android JSON数据解析(GSON方式)
要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Jav ...
- Go语言学习之encoding/json包
json json大家都不陌生: JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript 规范的一个子集,采用 ...
最新文章
- Java项目:慢病报销管理信息系统(java+MySQL+Jdbc+Servlet+Jsp)
- Ubuntu中设置防火墙的开启与关闭
- 数据结构 树的遍历(递归遍历)
- 等差区间 线段树+GCD
- 多屏互动协议 linux,【Linux系统多屏互动电视】Linux系统多屏互动电视报价及图片大全-列表版-ZOL中关村在线...
- BZOJ 1070: [SCOI2007]修车(费用流)
- CGI + FastCGI(PHP-FPM)联系与区别 【图解 + 注释】
- Swift 5用Template自动创建VIPER架构代码
- H5互动游戏营销方案策划
- 怎么修改打印机服务器权限,Win7怎么设置网络打印机管理权限?
- ASC19启动:在培养超算人才的路上砥砺前行
- windows虚拟摄像头开发
- LightOJ 1197 Help Hanzo
- badboy录制网站出现css样式混乱,网页的图标点击没反应
- html引入jquery库
- 03.服务限流实现方案
- android手机的文件格式,安卓手机如何打开.apk文件?
- AddressList
- 使用 Python 简单获取电影天堂的电影数据 [第一个爬虫小测试]
- codefoces-A. Pens and Pencils