好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

OpenMV与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 并返回一个对象。若该字符串未正确排列,则会引发示值误差。

到此这篇关于OpenMV与JSON编码的文章就介绍到这了,更多相关OpenMV与JSON编码内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

查看更多关于OpenMV与JSON编码问题解析的详细内容...

  阅读:51次