欢迎来到天天文库
浏览记录
ID:27870201
大小:60.00 KB
页数:6页
时间:2018-12-06
《基于Dragonbaord 410c开发板实现JSON通信报文解析.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于Dragonbaord410c开发板实现JSON通信报文解析 在物联网IOT设计和开发中,我们通常会遇到一些数据交互和传输问题,我们需要在不同的设备间传递数据进行交互通信,通常我们需要选择一个合适的数据交互协议和格式,这样我们的设计才会得到极大的简化,和提高设计质量,JSON是一种是一种轻量级的数据交换格式,近年来不仅被广泛的使用在互联网邻域,同时在IOT领域也得到了广泛的应用,利用JSON来进行数据交互成为了众多IOT设计方案的优选,本节blog将在我们当前非常流行的IOT开发套件draongboard410c上
2、来实现JSON报文的解析和应用。 这里我们使用的是Python脚本在dragonboard410c上实现对JSON报文的解析,这里python提供了JSON库模块来处理JSON报文,这里我们只需要在dragonboard410c上使用apt-get工具安装JSON的python模块即可,具体的安装命令如下: apt-getinstalljson-py 安装好后,再使用importjson导入即可使用该模块了,利用该模块来进行JSON解析非常方便,下面我们就来看如何使用JSON模块来快捷的实现对JSON报文的解析
3、: 这里我们给出一个常用的系统用户注册报文示例,如下: ‘{ “report”:{ “from”:“MBD000000001”, “to”:“MBS000000001”, “TImeStamp”:“2017-1-1412:45:32”, “msg”:{ “type”:0, “userName”:“test1”, “userMD5”:“abdsetsasgt”, “sexuality”:“男”, “age”:“19”, “phone”:“15361822674”, “email”:“331212
4、931@qq.com” } } }’ 在这个报文中,报文的收发者ID、时间戳、消息类型、用户名、用户的密码MD5值、用户性别等信息等,发送该报文可以向dragonbaord410c设备申请注册,这里就以该注册报文为例来教大家如何快速的编写python脚本来实现对JSON报文的解析。 具体的python代码如下: #coding:utf8 importsys importjson classMssageProcessing: def__init__(self,recvMsg): self.reporT
5、IsError=0 self.reporTID=“” self.toID=“” try: self.reportJosn=json.loads(recvMsg)[“report”] self.msgJosn=self.reportJosn[“msg”] self.fromID=self.getFromID() ifself.fromID!=“error”: self.reporTIsError=0 else: self.reportIsError=1 self.toID=self.getToID()
6、 ifself.toID!=“error”: self.reportIsError=0 else: self.reportIsError=1 except: print(“recvreportiserror”) self.reportIsError=1 defupdateMsg(self,recvMsg): self.reportJosn=json.loads(recvMsg)[“report”] self.msgJosn=self.reportJosn[“msg”] self.fromID=sel
7、f.getFromID() self.toID=self.getToID() self.mobaiServiceID=“MBS000000001” defgetFromID(self): fID=self.reportJosn[“from”] print(fID) iflen(fID)!=12: return“error” else: iffID[0:3]==“MBS”orfID[0:3]==“MBU”orfID[0:3]==“MBD”: try: int(fID[3:]) returnfID
8、except: return“error” else: return“error” defgetToID(self): print(self.reportJosn[“to”]) returnself.reportJosn[“to”] defgetTimeStamp(self): print(self.
此文档下载收益归作者所有