• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[紫猫] [手机版]json字符串格式提取指定数据 [复制链接]

1#
{"code":"0","msg":"项目信息获取成功","projects":[{"projectId":"9a127d6a379545f9acdb8d8cca3b75eb","projectCode":"1623"},{"projectName":"紫猫学院论坛注册短信验证","projectType":"短信","projectPrice":"0.4","projectMatchText":"紫猫","projectCanAdd":"0","projectCanAddLabel":"取消收藏","projectMatchNo":"null"}]}

经常有同学提问上面这种数据如何解析提取出自己想要的内容, 其实这个很简单, 只要搞清楚数组与table的区别, 按键手机版一个命令就可以解决了.

首先, 我们介绍一个方便查看json数据的网站 https://json.cn/ 大家可以把上面数据输入到网页里就可以看到解析后的样子了.


在按键手机版的json解析中, 大括号{}表示table数据类型, 中括号[]表示数组数据类型.

所以上面数据中, 第一层数据是table数据, 里面有code, msg, projects这3个键名, 其中projects的数据是中括号[]数组数据, 该数组里有两个table数据. 以此类推, 按键手机版代码如下:
  1. //假设json数据存放在文件/sdcard/json.txt中
  2. Dim jsontxt = File.Read("/sdcard/json.txt")
  3. TracePrint "json数据为: ", jsontxt

  4. //使用Encode扩展转换json为table数据
  5. Dim t = Encode.JsonToTable(jsontxt)

  6. //提取第一层的code和msg, 由于这两个数据是字符串, 所以可以直接输出查看
  7. TracePrint "code数据: ", t["code"]
  8. TracePrint "msg数据: ", t["msg"]

  9. //而projects数据是数组, 无法直接输出, 但是可以查看下该数组的最大下标
  10. TracePrint "projects最大下标: ", Ubound(t["projects"])

  11. //数组是通过下标取值的, 在table格式的写法中, 下标是从1开始, 并非是0
  12. //在这个数组中, 有两个元素, 这两个元素也是table数据
  13. //t["projects"][1]表示第一个元素
  14. //t["projects"][2]表示第二个元素

  15. //projectId在数组的第一个元素中, 所以要输出写法如下
  16. TracePrint "projectId数据: ", t["projects"][1]["projectId"]

  17. //projectName在数组的第二个元素中, 所以要输出写法如下
  18. TracePrint "projectName数据: ", t["projects"][2]["projectName"]

  19. //其他数据写法都差不多, 仔细分析结构, 区分清楚中括号[]与大括号{}区别, 就可以提取任何自己想要的数据.
复制代码


【紫猫编程学园】火热招生中

教学涉及按键精灵电脑版、按键精灵手机版、易语言、Lua编程。

包含网页、端游、手游、办公、模拟器、插件等。

报名咨询QQ:345911220 或 97682686 或 97682687;

报名咨询微信:zimaoxy; 点我在线交谈


紫猫学园免费教程

加入交流QQ群: 7333555

2#

感谢楼主大神,学到了

发新话题 回复该主题