【发布时间】:2021-09-08 11:44:31
【问题描述】:
这里的例子:
#!/bin/bash
declare -A rep_hostname
rep_hostname=( [test1]='172.1.1.1' [test2]='172.1.1.2' [test3]='172.1.1.3' )
json=$(
jo members="$(
jo -a "${rep_hostname[@]}" |
jq -c 'to_entries | map({ "_id": .key, "host": .value })'
)"
)
echo "$json"
输出以下内容:
{
"members":[
{"_id":0,"host":"172.1.1.3:2701"},
{"_id":1,"host":"172.1.1.2:2701"},
{"_id":2,"host":"172.1.1.1:2701"}
]
}
如何制作下面的JSON?
{
"test1":"172.1.1",
"test2":"172.1.1.2",
"test3":"172.1.1.3"
}
【问题讨论】:
-
关联数组和这个有什么关系?如果您只有 JSON,您可以使用
jq解析它并生成所需的 JSON。如果从关联数组开始,则不需要首先定义json;您可以直接使用数组。 -
需要做从关联数组到json映射并返回。
-
那么,您分配给
json的值与此有什么关系?