如何解决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
{"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 举报,一经查实,本站将立刻删除。