目录
- JSON
- ujson – JSON编码与解码
- Python生成JSON
- 常用函数
- 生成JSON字符串
- 解析JSON字符串
- 解析JSON对象
JSON
如果想快速尝试两个单片机通信的。推荐使用串口传输json字符串!
JSON是一种简洁高效的交换数据的格式。 它可以是这种简单的:
"[[12,0],[10,12],[22,10],[99,11]]"
注:我通过这种简单的字符串,把OpenMV中的色块的x,y坐标发送出去。
也可以是这种复杂的:
在python中表示多行字符串:
'''
{
"number":10,
"color" :[255,0,0],
"rate" :0.65
}
'''
我使用这种结构把OpenMV采集到的颜色信息发送到wifi中的服务器中。
甚至于,可以像这样:
'''
{
"firstName": "John",
"lastName": "Smith",
"sex": "male",
"age": 25,
"address":
{
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"phoneNumber":
[
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "fax",
"number": "646 555-4567"
}
]
}
'''
注意:json的形式和Python很像,但是json是javascript的对象表达形式,和python的表达形式稍有不同。
ujson – JSON编码与解码
OpenMV内置的json模块允许Python对象和JSON数据格式之间的转换
Python生成JSON
OpenMV有json的模块,json.dumps(obj)和ujson.loads(str)可以很容的生成json字符串和解析json字符串。
import json
obj = [[12,0],[10,12],[22,10],[99,11]]
print(json.dumps(obj))
obj = {
"number":10,
"color" :[255,0,0],
"rate" :0.65
}
print(json.dumps(obj))
然后把字符串通过串口发送出去,然后在另一端,把json字符串解析成对象/数组。然后进行接下来的逻辑操作。
会输出:
'[[12, 0], [10, 12], [22, 10], [99, 11]]'
'{"color": [255, 0, 0], "number": 10, "rate": 0.65}'
常用函数
生成JSON字符串
ujson.dumps(obj)
返回表示为JSON字符串的 obj 。
解析JSON字符串
ujson.load(stream)
解析给定的 stream ,将其解释为JSON字符串并将数据反序列化为Python对象。返回结果对象。
解析一直持续到到文件结束end-of-file。 如果 stream 中的数据格式不正确, ValueError 将被触发。
解析JSON对象
ujson.loads(str)
解析JSON str 并返回一个对象。若该字符串未正确排列,则会引发示值误差。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)