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

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容