给定以下输入(这是另一个复杂查询的输出结果的简化版本):
所期望的输出:
或者(更适合后续使用):
我真的想不出该如何做。我的真正问题当然是多个对象输入数据,我真的不知道它是否是有效的 JSON。Jq 生成并接受它,但 jshon 不行。我尝试了各种可能性,但没有一个能产生我需要的结果。我认为这是最有可能的选项。
但是,唉。我尝试了其他的事情:
另外一个,接近了,但没成功:
谁愿意给我启示?
因为@peak的帮助,所以以上用例的完整答案是...
echo '{ "a": { "b":"c", "d":"e" } }{ "a": { "b":"f", "d":"g" } }' | jq '.'
{
"a": {
"b": "c",
"d": "e"
}
}
{
"a": {
"b": "f",
"d": "g"
}
}
所期望的输出:
{
"c": "e",
"f": "g"
}
或者(更适合后续使用):
{
x: {
"c": "e",
"f": "g"
}
}
我真的想不出该如何做。我的真正问题当然是多个对象输入数据,我真的不知道它是否是有效的 JSON。Jq 生成并接受它,但 jshon 不行。我尝试了各种可能性,但没有一个能产生我需要的结果。我认为这是最有可能的选项。
echo '{ "a": { "b":"c", "d":"e" } }{ "a": { "b":"f", "d":"g" } }' | jq ' . | { (.a.b): .a.d }'
{
"c": "e"
}
{
"f": "g"
}
但是,唉。我尝试了其他的事情:
' . | { x: { (.a.b): .a.d } }'
'{ x: {} | . | add }'
'{ x: {} | . | x += }'
'{ x: {} | x += . }'
'x: {} | .x += { (.a.b): .a.d }'
'{ x: {} } | .x += { (.a.b): .a.d }'
另外一个,接近了,但没成功:
'reduce { (.a.b): .a.d } as $item ({}; . + $item)'
{
"c": "e"
}
{
"f": "g"
}
谁愿意给我启示?
因为@peak的帮助,所以以上用例的完整答案是...
echo '{ "a": { "b": "c", "d": "e" } }{ "a": { "b": "f", "d": "g" } }' | jq -n '{ x: [inputs | .a | { (.b): .d} ] | add }'
{
"x": {
"c": "e",
"f": "g"
}
}