您的位置 首页 分销

根据Dragonbaord 410c开发板完成JSON通讯报文解析

基于Dragonbaord 410c开发板实现JSON通信报文解析-在物联网IOT设计和开发中,我们通常会遇到一些数据交互和传输问题,我们需要在不同的设备间传递数据进行交互通信,通常我们需要选择一个合

在物联网IOT规划和开发中,咱们一般会遇到一些数据交互和传输问题,咱们需求在不同的设备间传递数据进行交互通讯,一般咱们需求挑选一个适宜的数据交互协议和格局,这样咱们的规划才会得到极大的简化,和进步规划质量,JSON是一种是一种轻量级的数据交换格局,近年来不只被广泛的运用在互联网邻域,一起在IOT范畴也得到了广泛的运用,运用JSON来进行数据交互成为了很多IOT规划方案的优选,本节blog将在咱们当时十分盛行的IOT开发套件draongboard 410c上来完成JSON报文的解析和运用。

这儿咱们运用的是Python脚本在dragonboard 410c上完成对JSON报文的解析,这儿python供给了JSON库模块来处理JSON报文,这儿咱们只需求在dragonboard 410c上运用apt-get东西装置JSON的python模块即可,详细的装置指令如下:

apt-get install json-py

装置好后,再运用import json 导入即可运用该模块了,运用该模块来进行JSON解析十分便利,下面咱们就来看怎么运用JSON模块来方便的完成对JSON报文的解析:

这儿咱们给出一个常用的体系用户注册报文示例,如下:

‘{

“report”:{

“from”:“MBD000000001”,

“to”:“MBS000000001”,

“TImeStamp”:“2017-1-14 12:45:32”,

“msg”:{

“type”:0,

“userName”:“test1”,

“userMD5”:“abdsetsasgt”,

“sexuality”:“男”,

“age”:“19”,

“phone”:“15361822674”,

“email”:“331212931@qq.com”

}

}

}’

在这个报文中,报文的收发者ID、时刻戳、音讯类型、用户名、用户的暗码MD5值、用户性别等信息等,发送该报文能够向dragonbaord 410c设备请求注册,这儿就以该注册报文为例来教咱们怎么快速的编写python脚原本完成对JSON报文的解析。

详细的python代码如下:

#coding:utf8

import sys

import json

class MssageProcessing:

def __init__(self,recvMsg):

self.reporTIsError=0

self.reporTID=“”

self.toID=“”

try:

self.reportJosn=json.loads(recvMsg)[“report”]

self.msgJosn=self.reportJosn[“msg”]

self.fromID=self.getFromID()

if self.fromID!=“error”:

self.reporTIsError=0

else:

self.reportIsError=1

self.toID=self.getToID()

if self.toID!=“error”:

self.reportIsError=0

else:

self.reportIsError=1

except:

print(“recv report is error”)

self.reportIsError=1

def updateMsg(self,recvMsg):

self.reportJosn=json.loads(recvMsg)[“report”]

self.msgJosn=self.reportJosn[“msg”]

self.fromID=self.getFromID()

self.toID=self.getToID()

self.mobaiServiceID=“MBS000000001”

def getFromID(self):

fID=self.reportJosn[“from”]

print(fID)

if len(fID)!=12:

return “error”

else:

if fID[0:3]==“MBS” or fID[0:3]==“MBU” or fID[0:3]==“MBD”:

try:

int(fID[3:])

return fID

except:

return “error”

else:

return “error”

def getToID(self):

print(self.reportJosn[“to”])

return self.reportJosn[“to”]

def getTimeStamp(self):

print(self.reportJosn[“timeStamp”])

return self.reportJosn[“timeStamp”]

def getMsgType(self):

print(self.msgJosn[“type”])

return self.msgJosn[“type”]

if __name__==“__main__”:

recvMsg=MssageProcessing(‘{“report”:{“from”:“000000000001”,“to”:“000000000002”,“timeStamp”:“2017-1-14 12:45:32”,“msg”:{“type”:0,“userName”:“test1”,“userMD5”:“abdsetsasgt”,“sexuality”:“男”,“age”:“19”}}}’)

recvMsg.getFromID()

recvMsg.getToID()

recvMsg.getMsgType()

[userName,userMD5,sexuality,age]=recvMsg.registerMessageHandle()

print(userName)

print(userMD5)

运转上述代码咱们就能够看到,咱们能够获取报文中对应字段标签的内容进行打印,表明对JSON报文解析成功。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/183522.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部