我正在尝试使用shell脚本解析以下json对象:
country.json
{
"countries": [
{"country":"India","city":["India1","India2","India3"]},
{"country":"USA","city":["USA1","USA2","USA3"]}
]
}
我想要的结果应该是:
country:India, city:India1
country:India, city:India2
country:India, city:India3
country:USA, city:USA1
country:USA, city:USA2
country:USA, city:USA3
我在shell脚本中使用jq来迭代上面的json,如下所示:
for k in $(jq '.countries | keys | .[]' country.json); do
countryObj=$(jq -r ".countries[$k]" country.json);
countryValue=$(jq -r '.country' <<< "$countryObj");
city_array=$(jq -r '.city' <<< "$countryObj");
echo $city_array
done
由此我可以得到city_array,即["India1","India2","India3"]
和["USA1","USA2","USA3"]
,但我不能得到上面提到的所需输出
这完全可以在jq中完成。
Gives:
jqplay
如果你不需要那空行,那就简单多了。
jqplay