【物联网】7.物联网通信 - 数据格式(XML ,JSON,MessagePack)

2024-02-23 23:48

本文主要是介绍【物联网】7.物联网通信 - 数据格式(XML ,JSON,MessagePack),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

嵌入式开发中其实最重要的就是数据传输,这部分由于频繁的使用,高效的格式和算法就变得很重要,算法这部分会在其他文章单独叙述,这里主要是想说下数据格式

使用过单片机开发的同学应该比较熟悉,可能就是自己定义的整型(int)或者字符串等之类的类型,但是这都是简单的通信使用,对于物联网这种复杂且未来升级需求大的项目,就需要其他专门的数据格式来做这个工作

物联网的角度来说,XML 和JSON是可以比较简单的操作的

举个例子,假设设备要发送传感器的值,此时除了发送传感器的值以外,还要一并发送数据接收时间、设备的机器信息以及用户信息等数据。自然,设备还会通知多个传感器的值和机器的状态。

下面的图就是用XML 和JSON 分别表示了两台传感器的信息、设备的状态、获取数据的时间,以及发送数据的设备名称等

比较二者可知,XML 的格式比JSON 更容易理解。然而XML 的字符数较多,数据量较大。相对而言,JSON 比XML 字符数少,数据量也小。

XML 和JSON 这两种数据格式都在每种语言中实现了各自的库,使用者通过程序就能很轻松地使用这些库

存在的问题

设备传来的数据和Web 不一样,大多是传感器、图像、语音等数值数据。相较于文本而言,这样的数据更适合用二进制来处理。不过,我们前文介绍的XML 和JSON 都是用文本格式来处理数据的。

基于物联网服务处理这些格式时,要把文本数据转换成数值数据和二进制数据。因此需要进行两项工作,即解析XML 和JSON 格式,以及把解析结果从文本格式转换到二进制形式。这样一来,就需要分两步来处理。

解决方案之一:MessagePack

如果能直接以二进制形式接收数据,是不是就能更迅速地处理数据了呢?由此,一种数据格式应运而生,它就是MessagePack

MessagePack 的数据格式虽然跟JSON 相似,其数据却保留了二进制的形式。因此,虽然这种数据格式不方便人们直接阅读,但计算机却能很容易地处理。

又因为MessagePack 发送的是二进制数据,所以比起以文本形式发送数据的JSON,数据更加紧凑。MessagePack 跟XML 和JSON 一样,都提供了面向多种编程语言的库,另外,近年来多个OSS(开源软件)也都采用了MessagePack。

这篇关于【物联网】7.物联网通信 - 数据格式(XML ,JSON,MessagePack)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/740321

相关文章

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON: