递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 988|回复: 12
打印 上一主题 下一主题

[视窗] 求piv模块的json取数组成员的使用例子

[复制链接]

4

主题

37

帖子

133

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
133
跳转到指定楼层
楼主
发表于 2024-9-30 12:39:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
{"code":"0","count":"11838","data":[{"id":"12053","name":"\u91cd\u751f\u96be\u9a6f","number":"12583","addtime":"2024-09-29 09:02:01","url":"https:\/\/pan.quark.cn\/s\/5831c8ead285","episodes":"94"},{"id":"12052","name":"\u5a5a\u59fb\u7684\u8c0e\u8a00","number":"12582","addtime":"2024-09-29 09:02:00","url":"https:\/\/pan.quark.cn\/s\/27dafca96e45","episodes":"59"},{"id":"12051","name":"\u4e00\u89c9\u9192\u6765\u6211\u5ac1\u7ed9\u4e86\u53cd\u6d3e\u5927\u4f6c","number":"12581","addtime":"2024-09-29 09:01:59","url":"https:\/\/pan.quark.cn\/s\/8de90ad2749a","episodes":"81"},{"id":"12050","name":"\u8d24\u59bb\u9006\u88ad\u60f9\u4e0d\u8d77","number":"12580","addtime":"2024-09-29 09:01:58","url":"https:\/\/pan.quark.cn\/s\/7012452dd323","episodes":"65"},{"id":"12049","name":"\u95ea\u5a5a\u6751\u59d1\u662f\u603b\u88c1","number":"12579","addtime":"2024-09-29 09:01:58","url":"https:\/\/pan.quark.cn\/s\/9c7a658316bb","episodes":"58"},{"id":"12048","name":"\u50bb\u840c\u66ff\u8eab\u7231\u4e0a\u6211\u8001\u516c","number":"12578","addtime":"2024-09-29 09:01:57","url":"https:\/\/pan.quark.cn\/s\/2bff2038c563","episodes":"82"},{"id":"12047","name":"\u5a46\u5a46\u7684\u793c\u7269","number":"12577","addtime":"2024-09-29 09:01:56","url":"https:\/\/pan.quark.cn\/s\/d485816a5d95","episodes":"30"},{"id":"12046","name":"\u9006\u98ce\u7ffb\u76d8\u4e4b\u6211\u662f\u4eba\u751f\u8d62\u5bb6","number":"12576","addtime":"2024-09-29 09:01:55","url":"https:\/\/pan.quark.cn\/s\/6c51ad688359","episodes":"67"},{"id":"12045","name":"\u8346\u68d8\u73ab\u7470","number":"12575","addtime":"2024-09-29 09:01:54","url":"https:\/\/pan.quark.cn\/s\/13e0c6f33750","episodes":"100"}]}

求大哥写个例子

回复

使用道具 举报

444

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
40507
沙发
发表于 2024-9-30 12:52:52 | 只看该作者
为啥用piv,自带的不香吗。
//data.[0]  就取出数组内的第一个对象数据了。


<火山程序 类型 = "通常" 版本 = 1 />

变量 JSON对象 <类型 = JSON对象类>
JSON对象.创建自文本 (JSON)

变量 取出的对象 <类型 = JSON对象类>
JSON对象.取对象值 ("//data.[0]", 取出的对象)
调试输出 (取出的对象.到可读文本 ())
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

26

主题

1899

帖子

6920

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6920
板凳
发表于 2024-9-30 13:00:11 | 只看该作者
<火山程序 类型 = "通常" 版本 = 1 />

方法 例子
{
    变量 json <类型 = PivJSON>
    变量 内容 <类型 = 文本型
            值 = "\r\n{\"code\":\"0\",\"count\":\"11838\",\"data\":[{\"id\":\"12053\",\"name\":\"\\u91cd\\u751f\\u96be\\u9a6f\",\"number\":\"12583\",\"addtime\":\"2024-09-29 09:02:01\",\"url\":\"https:\\/\\/pan.quark.cn\\/s\\/5831c8ead285\",\"episodes\":\"94\"},{\"id\":\"12052\",\"name\":\"\\u5a5a\\u59fb\\u7684\\u8c0e\\u8a00\",\"number\":\"12582\",\"addtime\":\"2024-09-29 09:02:00\",\"url\":\"https:\\/\\/pan.quark.cn\\/s\\/27dafca96e45\",\"episodes\":\"59\"},{\"id\":\"12051\",\"name\":\"\\u4e00\\u89c9\\u9192\\u6765\\u6211\\u5ac1\\u7ed9\\u4e86\\u53cd\\u6d3e\\u5927\\u4f6c\",\"number\":\"12581\",\"addtime\":\"2024-09-29 09:01:59\",\"url\":\"https:\\/\\/pan.quark.cn\\/s\\/8de90ad2749a\",\"episodes\":\"81\"},{\"id\":\"12050\",\"name\":\"\\u8d24\\u59bb\\u9006\\u88ad\\u60f9\\u4e0d\\u8d77\",\"number\":\"12580\",\"addtime\":\"2024-09-29 09:01:58\",\"url\":\"https:\\/\\/pan.quark.cn\\/s\\/7012452dd323\",\"episodes\":\"65\"},{\"id\":\"12049\",\"name\":\"\\u95ea\\u5a5a\\u6751\\u59d1\\u662f\\u603b\\u88c1\",\"number\":\"12579\",\"addtime\":\"2024-09-29 09:01:58\",\"url\":\"https:\\/\\/pan.quark.cn\\/s\\/9c7a658316bb\",\"episodes\":\"58\"},{\"id\":\"12048\",\"name\":\"\\u50bb\\u840c\\u66ff\\u8eab\\u7231\\u4e0a\\u6211\\u8001\\u516c\",\"number\":\"12578\",\"addtime\":\"2024-09-29 09:01:57\",\"url\":\"https:\\/\\/pan.quark.cn\\/s\\/2bff2038c563\",\"episodes\":\"82\"},{\"id\":\"12047\",\"name\":\"\\u5a46\\u5a46\\u7684\\u793c\\u7269\",\"number\":\"12577\",\"addtime\":\"2024-09-29 09:01:56\",\"url\":\"https:\\/\\/pan.quark.cn\\/s\\/d485816a5d95\",\"episodes\":\"30\"},{\"id\":\"12046\",\"name\":\"\\u9006\\u98ce\\u7ffb\\u76d8\\u4e4b\\u6211\\u662f\\u4eba\\u751f\\u8d62\\u5bb6\",\"number\":\"12576\",\"addtime\":\"2024-09-29 09:01:55\",\"url\":\"https:\\/\\/pan.quark.cn\\/s\\/6c51ad688359\",\"episodes\":\"67\"},{\"id\":\"12045\",\"name\":\"\\u8346\\u68d8\\u73ab\\u7470\",\"number\":\"12575\",\"addtime\":\"2024-09-29 09:01:54\",\"url\":\"https:\\/\\/pan.quark.cn\\/s\\/13e0c6f33750\",\"episodes\":\"100\"}]}">
    json.解析 (内容)
    调试输出 ("数组成员数", json.取成员 ("data").取成员数 ())
    json.取成员 ("data").枚举循环 ()
    {
        调试输出 (json.取枚举键 (), json.取枚举值 ().到可读文本 ())
    }
    调试输出 (json.取成员 ("data").取成员 (0).取成员 ("url").取文本 ())
    调试输出 (json.取路径文本 ("/data/1/id"), json.取路径文本 ("/data/1/name"), json.取路径文本 ("/data/1/number"), json.取路径文本 ("/data/1/addtime"), json.取路径文本 ("/data/1/number"), json.取路径文本 ("/data/1/episodes"))
}
回复

使用道具 举报

4

主题

37

帖子

133

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
133
地板
 楼主| 发表于 2024-9-30 13:02:02 | 只看该作者
创世魂 发表于 2024-9-30 12:52
为啥用piv,自带的不香吗。
//data.[0]  就取出数组内的第一个对象数据了。

用火山模块但是需要依赖FMC界面库,火山只能存在一个界面库在项目中,我用炫彩界面库,所以就用了piv模块。
回复

使用道具 举报

26

主题

1899

帖子

6920

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6920
5#
发表于 2024-9-30 13:09:53 | 只看该作者
也可以这样将数据赋值给变量,但会有拷贝数据的开销。

<火山程序 类型 = "通常" 版本 = 1 />

变量 成员0 <类型 = PivJSON>
变量 成员1 <类型 = PivJSON>
成员0 = json.取成员 ("data").取成员 (0)
成员1 = json.取路径 ("/data/1")
回复

使用道具 举报

4

主题

37

帖子

133

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
133
6#
 楼主| 发表于 2024-9-30 13:35:15 | 只看该作者
Xelloss0618 发表于 2024-9-30 13:00
方法 例子
{
    变量 json

实际原数据data上面还有一层,我改成这样了
JSON.取成员 ("/list/data/").枚举循环 ()  
我用这样它报错 错误: 接收到未经处理的严重异常,代码为: 0xE06D7363




回复

使用道具 举报

4

主题

37

帖子

133

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
133
7#
 楼主| 发表于 2024-9-30 13:43:04 | 只看该作者
Xelloss0618 发表于 2024-9-30 13:00
方法 例子
{
    变量 json

{"list":{"code":"0","count":"11838","data":[{"id":"12053","name":"\u91cd\u751f\u96be\u9a6f","number":"12583","addtime":"2024-09-29 09:02:01","url":"https:\/\/pan.quark.cn\/s\/5831c8ead285","episodes":"94"},{"id":"12052","name":"\u5a5a\u59fb\u7684\u8c0e\u8a00","number":"12582","addtime":"2024-09-29 09:02:00","url":"https:\/\/pan.quark.cn\/s\/27dafca96e45","episodes":"59"},{"id":"12051","name":"\u4e00\u89c9\u9192\u6765\u6211\u5ac1\u7ed9\u4e86\u53cd\u6d3e\u5927\u4f6c","number":"12581","addtime":"2024-09-29 09:01:59","url":"https:\/\/pan.quark.cn\/s\/8de90ad2749a","episodes":"81"},{"id":"12050","name":"\u8d24\u59bb\u9006\u88ad\u60f9\u4e0d\u8d77","number":"12580","addtime":"2024-09-29 09:01:58","url":"https:\/\/pan.quark.cn\/s\/7012452dd323","episodes":"65"}]}}
如这样前面还有一层的话,请问路径该怎么填
回复

使用道具 举报

4

主题

37

帖子

133

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
133
8#
 楼主| 发表于 2024-9-30 13:54:24 | 只看该作者
Xelloss0618 发表于 2024-9-30 13:00
方法 例子
{
    变量 json

JSON.取成员 ("/list/data/").枚举循环 ()
JSON.取成员 ("/list/data").枚举循环 ()
JSON.取成员 ("list/data").枚举循环 ()
这三种路径都会报错,不知道是不是弄了
回复

使用道具 举报

26

主题

1899

帖子

6920

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6920
9#
发表于 2024-9-30 14:03:43 | 只看该作者
鹏peng 发表于 2024-9-30 13:54
JSON.取成员 ("/list/data/").枚举循环 ()
JSON.取成员 ("/list/data").枚举循环 ()
JSON.取成员 ("lis ...

因为你用的取成员……
JSON.取路径 ("/list/data").枚举循环 ()
回复

使用道具 举报

4

主题

37

帖子

133

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
133
10#
 楼主| 发表于 2024-9-30 14:42:46 | 只看该作者
Xelloss0618 发表于 2024-9-30 14:03
因为你用的取成员……
JSON.取路径 ("/list/data").枚举循环 ()

感谢感谢,可以了。再请教一下,什么情况下用取路径,什么情况下用取成员呢
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-22 12:50 , Processed in 0.093910 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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