WeStudio技术社区

 找回密码
 立即注册

快捷登录

QQ登录

只需一步,快速开始

查看: 1555|回复: 0

如何解析JSON

[复制链接]

88

主题

123

帖子

918

积分

版主

Rank: 7Rank: 7Rank: 7

积分
918
发表于 2020-7-7 19:18:10 | 显示全部楼层 |阅读模式
本帖最后由 hixon 于 2020-7-7 20:02 编辑

ExpOS 1.3.4版本开始增加了对JSON的解析,下面举例说一下使用方法

假如我们通过访问http控件访问网络,服务器返回下面格式的JSON字符串
  1. {
  2.   "interval": "1",
  3.   "ids": [
  4.     "8QDX8GCQYYW7TN9KV3JJ",
  5.     "Q8DX8GCQYYW7TN9KV3JQ"
  6.   ],
  7.   "os": {
  8.     "ver": "1.3.2",
  9.     "url": "http://cloud.wareexpress.com/ota/132/os"
  10.   },
  11.   "app": {
  12.     "md5": "b299aa517a8da16db1ed3efab95592fd",
  13.     "url": "http://cloud.wareexpress.com/ota/132-app-updated/ota_test132-updated.app"
  14.   }
  15. }
复制代码

如何读取里面每个字段的内容呢?我们可以使用util的jsonToJsObject方法把JSON转换成JS对象,代码如下:
  1. var jsonString = ui.main.http.read(); // http控件读取到的内容是上面的json内容
  2. var obj = util.jsonToJsObject(jsonString); // 转换成JS对象
  3. var interval = obj.interval; // 返回"1"
  4. var ids = obj.ids; // 返回数组["8QDX8GCQYYW7TN9KV3JJ", "Q8DX8GCQYYW7TN9KV3JQ"]
  5. var os_ver = obj.os.ver; // 返回"1.3.2"
  6. var os_url = obj.os.url; // 返回"http://cloud.wareexpress.com/ota/132/os"
  7. var app_md5 = obj.app.md5; // 返回"b299aa517a8da16db1ed3efab95592fd"
  8. var app_url = obj.app.url; // 返回"http://cloud.wareexpress.com/ota/132-app-updated/ota_test132-updated.app"
复制代码

反过来,如果我们已经有一个JS对象,怎么把它转换成JSON字符串,返回给服务器呢?假如我们定义了一个JS对象
  1. var device = {
  2.     id: "Q8DX8GCQYYW7TN9KV3JQ",
  3.     model: "Pi1",
  4.     os_ver: "1.3.4"
  5. };
复制代码

可以使用util的objectToJson方法转换对象为JSON字符串, 如
  1. var json = util.objectToJson(device);
  2. ui.main.http.post(url, json);
复制代码








回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|物一世(北京)科技有限公司 ( 京ICP备20025895 )

GMT+8, 2022-8-19 19:03 , Processed in 0.032724 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表