Cloudflare API cut JSON响应

Cloudflare API cut JSON响应,json,bash,curl,awk,sed,Json,Bash,Curl,Awk,Sed,我似乎正在努力从中删除JSON响应 当我卷曲URL时,它会在JSON响应中返回我域区域的所有设置,例如: "editable": true, "id": "server_side_exclude", "modified_on": null, "value": "on" }, { "editable": false, "id": "sha1_support", "modi

我似乎正在努力从中删除JSON响应

当我卷曲URL时,它会在JSON响应中返回我域区域的所有设置,例如:

        "editable": true,
        "id": "server_side_exclude",
        "modified_on": null,
        "value": "on"
    },
    {
        "editable": false,
        "id": "sha1_support",
        "modified_on": null,
        "value": "off"
    },
    {
        "editable": false,
        "id": "sort_query_string_for_cache",
        "modified_on": null,
        "value": "off"
    },
    {
        "certificate_status": "active",
        "editable": true,
        "id": "ssl",
        "modified_on": "2016-05-18T14:38:45.665403Z",
        "value": "flexible"
这是因为我当然是通过将curl管道化到python-mjson.tool来切割它。我试图实现的基本目标是打印所有内容,例如:

server_side_exclude = on
sha1_support = off
sort_query_string_for_cache = off
IDs=$(curl https://api.cloudflare.com/client/v4/zones/xxxx/settings | python -m json.tool | grep id)
Values=$(curl https://api.cloudflare.com/client/v4/zones/xxxx/settings | python -m json.tool | grep value)
(ID=值)。我尝试将ID和值存储在单独的变量中,例如:

server_side_exclude = on
sha1_support = off
sort_query_string_for_cache = off
IDs=$(curl https://api.cloudflare.com/client/v4/zones/xxxx/settings | python -m json.tool | grep id)
Values=$(curl https://api.cloudflare.com/client/v4/zones/xxxx/settings | python -m json.tool | grep value)
然后将它们相邻打印,例如:

echo "$IDs = $Values"
但这些空旷的空间似乎会造成困难。我还尝试使用awksed来减少回复,但我对工具不太熟悉,也没有成功

能不能请一个更熟悉剪接文字的人帮我一下。提前感谢您。

您可以使用解析json:

curl https://api.cloudflare.com/client/v4/zones/xxxx/settings | \
    jq '.result | map({(.id):.value}) | add'
它给出:

{
  "always_online": "on",
  "server_side_exclude": "on",
  "sha1_support": "off",
  "sort_query_string_for_cache": "off",
  "ssl": "flexible"
}
如果要提取一个字段的值,对于
服务器端\u排除

curl https://api.cloudflare.com/client/v4/zones/xxxx/settings | \
    jq -r '.result | map({(.id):.value}) | add | .server_side_exclude'
我用于解析的输入是

您可以用来解析json:

curl https://api.cloudflare.com/client/v4/zones/xxxx/settings | \
    jq '.result | map({(.id):.value}) | add'
它给出:

{
  "always_online": "on",
  "server_side_exclude": "on",
  "sha1_support": "off",
  "sort_query_string_for_cache": "off",
  "ssl": "flexible"
}
如果要提取一个字段的值,对于
服务器端\u排除

curl https://api.cloudflare.com/client/v4/zones/xxxx/settings | \
    jq -r '.result | map({(.id):.value}) | add | .server_side_exclude'

我用于解析的输入是

看一看,看一看,太棒了!谢谢你,伙计,在过去的一个半小时里,我一直在用jq进行测试,但是我想不出正确的语法。非常感谢,这完全解决了我的问题。太棒了!谢谢你,伙计,在过去的一个半小时里,我一直在用jq进行测试,但是我想不出正确的语法。非常感谢,这完全解决了我的问题。