【物联⽹】7.物联⽹通信-数据格式
网络上xml是什么意思
(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。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。