遇到一个需求,解析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包解析相关推荐

  1. 问题解决:Golang的json包解析字段失败

    引言 这个问题出现在解析一个json的配置文件时,排错了很久,最后和狗勋一起解决了这个奇怪的问题. 正文 其实这个问题并不难,因为Golang自带json包,所以我们要做的其实就是在需要解析的结构体中 ...

  2. 如何在Swift3中获取Json包的内容(unwrap Json package)

    我想在这个帖子里面总结两个问题:一个是通过ReST获取Json的语句,这个比较简单 另一个是如何将Json包一层一层转存为字典,并最终通过keyword: String获得所需内容的方法 废话不说,来 ...

  3. 基于QT的【第一个项目】设计+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作

    基于QT的第一个项目+所有组件配合使用+网络编程局域网通信+文件IO操作+登录界面和头像+多界面跳转+JSON数据解析+表情包制作 第一阶段 网络编程局域网TCP/IP聊天QT实现 main.c ma ...

  4. JSON数据解析及gson.jar包

    从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送. 服务器端的编程语言只能以如下 3 种格式返回数据: HTML XML JSON JSON一种简单的数据格式,比xml更轻巧. JS ...

  5. java json解析jar包,解析json常用jar包

    13.轻量级的 JSON API:内置了一个轻量级的 JSON API 14.响... 1.加入 Jackson.jar? 2.在配置文件中配置 json 的映射? 3... 和json都是一种数据交 ...

  6. c语言组json包,json格式解析和libjson的用法介绍(关于cjson的使用方法)

    在阅读本文之前,请先阅读下<Rss Reader实例开发之系统设计>一文. Rss Reader实例开发中,进行网络数据交换时主要使用到了两种数据格式:JSON与XML.本文主要介绍JSO ...

  7. Json文件解析(上)

    Json文件解析(上) 代码地址:https://github.com/nlohmann/json 自述文件 alt=GitHub赞助商 data-canonical-src="https: ...

  8. Android JSON数据解析(GSON方式)

    要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Jav ...

  9. Go语言学习之encoding/json包

    json  json大家都不陌生:  JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.它基于 ECMAScript 规范的一个子集,采用 ...

最新文章

  1. Java项目:慢病报销管理信息系统(java+MySQL+Jdbc+Servlet+Jsp)
  2. Ubuntu中设置防火墙的开启与关闭
  3. 数据结构 树的遍历(递归遍历)
  4. 等差区间 线段树+GCD
  5. 多屏互动协议 linux,【Linux系统多屏互动电视】Linux系统多屏互动电视报价及图片大全-列表版-ZOL中关村在线...
  6. BZOJ 1070: [SCOI2007]修车(费用流)
  7. CGI + FastCGI(PHP-FPM)联系与区别 【图解 + 注释】
  8. Swift 5用Template自动创建VIPER架构代码
  9. H5互动游戏营销方案策划
  10. 怎么修改打印机服务器权限,Win7怎么设置网络打印机管理权限?
  11. ASC19启动:在培养超算人才的路上砥砺前行
  12. windows虚拟摄像头开发
  13. LightOJ 1197 Help Hanzo
  14. badboy录制网站出现css样式混乱,网页的图标点击没反应
  15. html引入jquery库
  16. 03.服务限流实现方案
  17. android手机的文件格式,安卓手机如何打开.apk文件?
  18. AddressList
  19. 使用 Python 简单获取电影天堂的电影数据 [第一个爬虫小测试]
  20. codefoces-A. Pens and Pencils

热门文章

  1. 使用狐火浏览器模拟发送http和https post请求
  2. 计算机三级网络技术ip地址,2019年计算机等考三级网络技术辅导:IP地址
  3. 仿苹果手机_iPhone苹果手机,谈谈我这些年使用中的体验和感受
  4. 面试杀手锏:Redis源码之SDS
  5. 数据采集--某度翻译全流程
  6. 逆战班 css 3D效果+动画
  7. 3D影视公司招聘内容摘录汇总
  8. pandas实现行转列(网优民工的福音)
  9. CSS——字体(font-family,font-style,font-size注意要点)
  10. html 实现3d效果代码,纯CSS实现3D的代码