微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash脚本将字符串值转换为json,然后返回json

如何解决bash脚本将字符串值转换为json,然后返回json

我对bash脚本非常陌生,请有人可以向我指出如何完成任务的正确方向。 我有一个curl调用,它返回一个字符串,我想将其转换为json。

我的curl声明-

curl --insecure -X POST 'https://url/api/IPAM/GetIP' --header 'Content-Type: application/json' --header -d '{"key1": "value1"}'

此curl语句在执行时返回一个字符串,例如10.100.100.100

我想获取此字符串并以json格式返回输出

{"IP":"10.100.100.100"}

我不使用jquery或python来执行此操作,因为整个脚本将由仅了解bash的包装程序运行。

解决方法

您可以使用jq将IP字符串处理为JSON字符串并将其打包为您选择的JSON对象。

ip="10.100.100.100"
jq --arg ip "$ip" -cn '{"IP":$ip}'

结果:

{"IP":"10.100.100.100"}

现在,如果使用示例curl POST请求的结果,则:

rawip_string=$(curl --insecure -X POST 'https://url/api/IPAM/GetIP' --header 'Content-Type: application/json' --header -d '{"key1": "value1"}')

jq --arg ip "$rawip_string" -cn '{"IP":$ip}'
,

一种不依赖jq之类的外部工具的方法是,您可以将输出ip属性获取为变量并将其连接。

$ return=$(echo 10.100.100.100)
$ echo "{\"IP\":\"${return}\"}"
{"IP":"10.100.100.100"}
,

printf '{"IP":"%s"}' "$(curl --insecure -X POST 'https://url/api/IPAM/GetIP' --header 'Content-Type: application/json' --header -d '{"key1": "value1"}')"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。