马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
{"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数据. 以此类推, 按键手机版代码如下:
[按键精灵] 纯文本查看 复制代码
//假设json数据存放在文件/sdcard/json.txt中
Dim jsontxt = File.Read("/sdcard/json.txt")
TracePrint "json数据为: ", jsontxt
//使用Encode扩展转换json为table数据
Dim t = Encode.JsonToTable(jsontxt)
//提取第一层的code和msg, 由于这两个数据是字符串, 所以可以直接输出查看
TracePrint "code数据: ", t["code"]
TracePrint "msg数据: ", t["msg"]
//而projects数据是数组, 无法直接输出, 但是可以查看下该数组的最大下标
TracePrint "projects最大下标: ", Ubound(t["projects"])
//数组是通过下标取值的, 在table格式的写法中, 下标是从1开始, 并非是0
//在这个数组中, 有两个元素, 这两个元素也是table数据
//t["projects"][1]表示第一个元素
//t["projects"][2]表示第二个元素
//projectId在数组的第一个元素中, 所以要输出写法如下
TracePrint "projectId数据: ", t["projects"][1]["projectId"]
//projectName在数组的第二个元素中, 所以要输出写法如下
TracePrint "projectName数据: ", t["projects"][2]["projectName"]
//其他数据写法都差不多, 仔细分析结构, 区分清楚中括号[]与大括号{}区别, 就可以提取任何自己想要的数据.
|