解析此JSON以获取人类可读列表

时间:2017-06-09 20:05:54

标签: json parsing

我有一个这个结构的JSON文件。对于每个URL字段,我们都有一个RESULT字段,其中包含数百个LINKS。是否可能以某种方式解析它并获得包含每个URL的所有LINKS的(即.csv)列表?

 [{
    "url": "https://example.org/yyy",
    "result": "{\"links\":[{\"link\":\"https://example.org/xxx/xxx\",\"text\":\"\"
},
{
    \"link\":\"https://example.org/xxx/xxx\",\"text\":\"\"
},
{
    \"link\":\"https://example.org/xxx/xxx\",\"text\":\"yyy\"}[.......]

提前致谢

1 个答案:

答案 0 :(得分:0)

以下是使用jq的解决方案。如果data.json包含示例数据

[{"url": "https://example.org/yyy", "result": "{\"links\":[{\"link\":\"https://example.org/xx1/xx1\",\"text\":\"\"},{\"link\":\"https://example.org/xx2/xx2\",\"text\":\"\"}]}"}]

然后命令

$ jq -Mr '.[].result | fromjson | .links[].link' data.json

产生

https://example.org/xx1/xx1
https://example.org/xx2/xx2

如果你想要网址和链接,那么命令

$ jq -Mr '.[] | .url as $url | .result | fromjson | "\($url),\(.links[].link)"' data.json

产生

https://example.org/yyy,https://example.org/xx1/xx1
https://example.org/yyy,https://example.org/xx2/xx2