递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 986|回复: 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"}]}

求大哥写个例子

回复

使用道具 举报

26

主题

1899

帖子

6918

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6918
13#
发表于 2024-10-1 09:35:49 | 只看该作者
xiaochen111 发表于 2024-10-1 01:53
这个崩修复不了吗 这样有点不好搞哦, 正常都是找不到返回空

这个JSON库本身遇到错误就会抛出异常,所以标准的写法是要去俘获异常的,我已经把大部分异常规避了,部分就没办法了,改就影响效率了,「取成员」这些也改用「成员」,虽然效率低些,但不会崩。
回复

使用道具 举报

0

主题

9

帖子

92

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
92
12#
发表于 2024-10-1 01:53:28 | 只看该作者
Xelloss0618 发表于 2024-9-30 17:00
只取一级的就用「取成员」,可以链式调用,需要直接访问二级以上的成员,就用「取路径」。
另外这个JSON ...

这个崩修复不了吗 这样有点不好搞哦, 正常都是找不到返回空
回复

使用道具 举报

26

主题

1899

帖子

6918

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
6918
11#
发表于 2024-9-30 17:00:07 | 只看该作者
鹏peng 发表于 2024-9-30 14:42
感谢感谢,可以了。再请教一下,什么情况下用取路径,什么情况下用取成员呢 ...

只取一级的就用「取成员」,可以链式调用,需要直接访问二级以上的成员,就用「取路径」。
另外这个JSON库,如果你取的成员或路径不存在,就会崩,需要加上异常捕获。
或者你可以用「成员」和「路径」进行访问,这个方法不会崩,目标成员不存在会自动创建。
回复

使用道具 举报

4

主题

37

帖子

133

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

26

主题

1899

帖子

6918

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

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

使用道具 举报

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
6#
 楼主| 发表于 2024-9-30 13:35:15 | 只看该作者
Xelloss0618 发表于 2024-9-30 13:00
方法 例子
{
    变量 json

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




回复

使用道具 举报

26

主题

1899

帖子

6918

积分

核心用户

Rank: 9Rank: 9Rank: 9

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

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 07:30 , Processed in 0.092174 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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