例如以下结构的 json:
[
articles: {
article_1: {
image: "https://example.com/1.jpg",
reviews: [
{
attach: "https://example32.com/test/22.png"
},
{
attaches: ["https://example12.com/test/23.png", "https://example23.com/test/77.zip"
report_to: "https://tongji.xxx.xxx/xxx/article_1_review_2"
}
]
},
article_2: {
image: "https://example.com/3.jpg",
related_posts: [
{
attach: ["https://example23.com/test/2113.png", "https://example22.com/test/123/77.zip"
report_to: "https://tongji.xxx.xxx/xxx/article_3"
}
]
}
}
]
每项格式完全不统一的这种,别的网站的 API ,非常不标准,随便截的一段例子,中间有的 dict 都嵌套了十几层。原始需求是把所有附件(相当于遍历所有链接,无视 key 因为同一个 json 里 attach 就出现 5 种叫法,估计还有漏,不知道他们客户端怎么解析的)下载下来按原始路径格式整理,例如https://example.com/test/123/77.zip
( report_to 这种路径最后一段没有扩展名的视为其它 API 直接忽略不下载)就放置到下载目录的/test/123/77.zip
,虽然反序列化后用递归遍历每个 dict 写起来也很快但感觉太不优雅了,来学习下有没有更优雅的写法
路径里有可能出现中文和特殊符号,一部分有 url_encode 一部分没有,不好直接用 regex 提取。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.