【问题标题】:Downloading json file from json file curl从 json 文件 curl 下载 json 文件
【发布时间】:2014-05-06 13:38:35
【问题描述】:

我有一个结构如下所示的 json 文件:

{
    url: "https://mysite.com/myjsonfile",
    version_number: 69,
}

这个 json 文件是从 mysite.com/myrootjsonfile 访问的

我想运行加载数据脚本来访问 mysite.com/myrootjsonfile 并使用 curl 从 url 字段加载 json 内容并将结果内容保存到本地存储。

这是我目前的尝试。

curl -o assets/content.json 'https://mysite.com/myrootjsonfile' | grep -Po '(?<="url": ")[^"]*' 

不幸的是,不是从 mysite.com/myjsonfile 保存内容,而是从上面保存内容:mysite.com/myrootjsonfile。谁能指出我可能做错了什么?请记住在一个全新的卷曲。谢谢!

【问题讨论】:

    标签: linux shell curl


    【解决方案1】:

    它正在保存来自myrootjsonfile 的内容,因为这就是您告诉curl 要做的事情——将该文件保存到位置assets/content.json,然后是greping stdin,它是空的。您需要使用两个curl 命令,一个用于下载根文件(并对其进行处理以找到第二个的 URL),第二个用于下载您想要的实际内容。您可以为此使用命令替换:

    my_url=$(curl https://mysite.com/myrootjsonfile | grep -Po '(?<=url: )[^,]*')
    curl -o assets/content.json "$my_url"
    

    我还更改了 grep 正则表达式 - 这一个匹配 "url:" 之后的一串非逗号字符。

    【讨论】:

      【解决方案2】:

      假设您希望将文件保存到 assets/content.json,请注意标志区分大小写。

      使用-o 而不是-O 将输出重定向到assets/content.json

      【讨论】:

      • ups,抱歉应该是小写的o。在那里编辑它。谢谢
      猜你喜欢
      • 1970-01-01
      • 2019-10-06
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多