我有一个json文件(test.json),结构如下
[
{
"key1" : "value-1",
"key2" : {
"key3" : "value3"
}
},
{
"key1" : "value-2",
"key2" : {
"key4" : "value4"
}
}
]
我想将文件内容转换为以下给定结构
[
{
"key1" : "value-1",
"key2" : "{\"key3\":\"value3\"}" // basically the stringyfy form of json
},
{
"key1" : "value-2",
"key2" : "{\"key4\":\"value4\"}" // basically the stringyfy form of json
}
]
我尝试如下,能够将key2转换为stringyfy JSON,但不确定如何更新为JSON。无论我从现有的stackoverflow问题中获得什么引用,它们都只是将新值添加到现有的json对象中。我需要读取现有的值并修改相同的值,然后将其更新为相同的json数组
jq -c '.[]' $BUILD_DIR/test.json | while read i; do
echo $(jq -r '.key2' <<< "$i") | jq '@json'
done
如果我只需要直接更新key2的值,下面的一个对我来说是有效的,这可能看起来很明显,但我对bash脚本语法非常陌生。
jq '( .[]).key2 |= "foo"' $BUILD_DIR/test.json
1条答案
按热度按时间6pp0gazn1#
输出
Demo on jq play