提取json文本中的列表问题

使用问题 · 626 次浏览
atheneus 创建于 9小时54分钟前

{"groups": [[[785, 570], [930, 715], [422, 788]], [[785, 788], [858, 788], [640, 860]], [[784, 424], [857, 569], [712, 787]], [[785, 641], [785, 859], [277, 1004]], [[858, 714], [713, 859], [350, 932]]], "colors": {"blue": 2, "green": 1, "red": 1, "white": 1}}

这个json文本在使用提取JSON内容提取groups到一个列表变量时,结果列表会是这样:

直接使用这个列表变量就会出现列表第一项会是0:[

也试了使用RootToken加赋值的写法,仍然不行

甚至使用C++代码都没搞定。

像这种列表嵌套的json,如何正确提取?


乐昂岚 4小时6分钟前 :

这结果是对的哦, 你希望提取后是怎样的

回复内容
沉没的白鲸 5小时4分钟前
#1

 groups 的内容是多层嵌套,“groups到一个列表变量”这里只解开一层,如果需要更进一层还需要再次使用提取JSON提取 





li1qqq 3小时44分钟前
#2

这样?


atheneus 回复 li1qqq 2小时56分钟前 :

这个和做一次JSON提取是等价的,实测过了,这个返回的列表可以循环遍历,但是遍历的每一项,仍然需要再次这样操作,才能继续遍历


atheneus 3小时10分钟前
#3

根据 沉默的白鲸的提示,反复试验后解决了,这里留下解决方法以供参考

第一个坑,不可以用groups直接提取,直接提取后的变量并不是列表,直接使用的话,他会把第一行的0:[这个字符当做列表的第一项。正确做法,使用groups.[*]提取出最外层的列表。

第二坑,我用上面的办法提取出groups.[*]的列表,进行 每一 的循环后发现,循环项 item 如果直接使用 每一 循环,想获取内层的列表项的话,仍然会把0:[当做列表的第一项,这里就是 白鲸 说的,还需要再次使用JSON提取

正确做法,对groups.[*]提取的列表,进行 每一 的循环 的循环项 列表对象 作为对象类型,再次使用JSON提取 ,这次提取到的变量,才是最内层的列表,这时就可以用 每一 进行遍历

乐昂岚 回复 atheneus 2小时11分钟前 :


enough! 回复 atheneus 41 分钟前 :

调用提取json内容,提取路径改为 groups ,用动态变量接输出是可以直接用索引的;


回复主贴