全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 642|回复: 8

怎样优雅地从多级的json里得到有效信息呢?

[复制链接]
发表于 2021-11-17 16:27:10 | 显示全部楼层 |阅读模式
本帖最后由 言和 于 2021-11-17 16:35 编辑

用Python处理

我举例一个json

json里又title是目录,然后也会按照这个值来创建文件夹保存文件

type是folder的时候,里面还有二级目录,然后还可能会有三级四级的目录

思路我是有一点点的,遍历json,然后判断type,不是folder就直接保存文件名,下载链接,是folder就继续往下遍历,得到全部文件名和链接之后就下载它们


  1. [
  2.     {
  3.       "type": "folder",
  4.       "title": "目录1",
  5.       "children": [
  6.         {
  7.           "type": "audio",
  8.           "hash": "hash/0",
  9.           "title": "01.xxxx.wav",
  10.           "workTitle": "标题",
  11.           "mediaStreamUrl": "在线链接",
  12.           "mediaDownloadUrl": "下载链接"
  13.         },
  14.         {
  15.             "type": "audio",
  16.             "hash": "hash/1",
  17.             "title": "02.xxxx.wav",
  18.             "workTitle": "标题",
  19.             "mediaStreamUrl": "在线链接",
  20.             "mediaDownloadUrl": "下载链接"
  21.           }
  22.       ]
  23.     },
  24.     {
  25.       "type": "folder",
  26.       "title": "目录2",
  27.       "children": [
  28.         {
  29.           "type": "audio",
  30.           "hash": "hash/2",
  31.           "title": "01.xxxx.wav",
  32.           "workTitle": "标题",
  33.           "mediaStreamUrl": "在线链接",
  34.           "mediaDownloadUrl": "下载链接"
  35.         },
  36.         {
  37.             "type": "audio",
  38.             "hash": "hash/3",
  39.             "title": "02.xxxx.wav",
  40.             "workTitle": "标题",
  41.             "mediaStreamUrl": "在线链接",
  42.             "mediaDownloadUrl": "下载链接"
  43.           }
  44.       ]
  45.     },
  46.     {
  47.       "type": "text",
  48.       "hash": "hash/4",
  49.       "title": "Readme.txt",
  50.       "workTitle": "标题",
  51.       "mediaStreamUrl": "在线链接",
  52.       "mediaDownloadUrl": "下载链接"
  53.     }
  54.   ]
复制代码
发表于 2021-11-17 16:39:58 | 显示全部楼层
优雅是不是码农专用矫情词?感觉很多码农都喜欢用。
发表于 2021-11-17 16:33:30 | 显示全部楼层
帮顶                           
发表于 2021-11-17 16:33:53 来自手机 | 显示全部楼层
jsonc/jsoncpp了解一下,再或者python处理
发表于 2021-11-17 16:48:54 | 显示全部楼层
本帖最后由 ORM 于 2021-11-17 16:49 编辑

jsonpath    jq
发表于 2021-11-17 16:55:33 | 显示全部楼层
json [] 是数组写法,{} 是对象。
$json [0]->children[0]->title  // 0.1.xxx.wav
昨天才学的,希望可以帮到你。
发表于 2021-11-17 17:04:34 来自手机 | 显示全部楼层
编程的优雅?你要的应该就是 循环跟递归 就够了吧?
发表于 2021-11-17 18:50:44 | 显示全部楼层
还要考虑容错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-5-15 14:26 , Processed in 0.067928 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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