Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将两个json数组(加载到内存中)合并到一个json数组中_Json_Linux_Bash_Shell_Jq - Fatal编程技术网

将两个json数组(加载到内存中)合并到一个json数组中

将两个json数组(加载到内存中)合并到一个json数组中,json,linux,bash,shell,jq,Json,Linux,Bash,Shell,Jq,我有两个json数组,我已经初始化如下 local=[{"account_id":"01C","id":"0XVWKCFV6P9CA5"},{"account_id":"CSDTHQ","id":"631QGYBNSF"},...............] org=[{"account_id":"BJPKWSH","id":"15BS0XP4F91V6YH4G0PV"},{"account_id":"01BKK44V5F6A1FKH60Q0ANX9JX","id":"01BKK44V7"},.

我有两个json数组,我已经初始化如下

local=[{"account_id":"01C","id":"0XVWKCFV6P9CA5"},{"account_id":"CSDTHQ","id":"631QGYBNSF"},...............]

org=[{"account_id":"BJPKWSH","id":"15BS0XP4F91V6YH4G0PV"},{"account_id":"01BKK44V5F6A1FKH60Q0ANX9JX","id":"01BKK44V7"},.....................]

我想要的是下面这样的东西

outputJson=[{"account_id":"BJPKWSH","id":"15BS0XP4F91V6YH4G0PV"},
{"account_id":"BJPKWSH","id":"15BS0XP4F91V6YH4G0PV"},
{"account_id":"01BKK44V5F6A1FKH60Q0ANX9JX","id":"01BKK44V7"},.....................]        
i、 我想把这两个json数组合并成一个。 我试过这个

jq -s '.[0] * .[1]' <<< "$local $org"

jq-s'[0]*[1].我不确定我是否了解您需要什么。如果需要将两个数组合并为一个数组,可以使用

jq '[.[0][], .[1][]]' <<< "[$local, $org]"

jq'[[0][],[1][]]”我不确定我是否了解您需要什么。如果需要将两个数组合并为一个数组,可以使用

jq '[.[0][], .[1][]]' <<< "[$local, $org]"

jq'[[0][],[1][]]”使用
+
,而不是
*

#!/bin/sh

j1='[{"account_id":"01C","id":"0XVWKCFV6P9CA5"},{"account_id":"CSDTHQ","id":"631QGYBNSF"}]'
j2='[{"account_id":"BJPKWSH","id":"15BS0XP4F91V6YH4G0PV"},{"account_id":"01BKK44V5F6A1FKH60Q0ANX9JX","id":"01BKK44V7"}]'
echo $(jq -s '.[0] + .[1]' <<EOF
$j1
$j2
EOF
)

使用
+
,而不是
*

#!/bin/sh

j1='[{"account_id":"01C","id":"0XVWKCFV6P9CA5"},{"account_id":"CSDTHQ","id":"631QGYBNSF"}]'
j2='[{"account_id":"BJPKWSH","id":"15BS0XP4F91V6YH4G0PV"},{"account_id":"01BKK44V5F6A1FKH60Q0ANX9JX","id":"01BKK44V7"}]'
echo $(jq -s '.[0] + .[1]' <<EOF
$j1
$j2
EOF
)


单引号变量内容?上面的变量是我作为sql查询输出得到的,对我来说,单引号这些项听起来不可行。如果您将sql结果存储在变量中,请使用进程替换直接将结果输入jq,如
sed“s/\”/'/g”,如果您初始化了那些变量,比如
local=[{“account\u id”:…
所有的双引号都消失了。您需要将json值括在单引号中,然后将它们赋给变量,例如
local='[{“account\u id”":…'
单引号变量内容?上述变量是我作为sql查询输出得到的,对我来说,将这些项目单引号是不可行的。如果您将sql结果存储在变量中,请使用过程替换将结果直接输入jq,如
sed“s/\”/'/g”如果你初始化了那些变量,比如
local=[{“account\u id”:…
所有的双引号都消失了。你需要用单引号将json值括起来,然后把它们赋给变量,例如
local='[{“account\u id”:…
你的括号在
echo
语句中放错了位置?我用了这个词,``echo'$(jq-s.[0]+[1].@RajivRai没有任何东西放错位置,也没有挂起。只需将整个脚本复制并粘贴到一个文件中,然后运行它即可查看。完全执行您在此处给出的内容,它会抛出错误../test.bash:第20行:警告:此处文档位于第20行,由文件结尾分隔(通缉
EOF'))./test.bash:第19行:警告:此处文档第19行由文件结尾(通缉
EOF')分隔为空。/test.bash:第20行:[{“帐户id”:“01C”,“id”:“0XVWKCFV6P9CA5”},{“帐户id”:“CSDTHQ”,“id”:“631QGYBNSF”}]:未找到命令。/test.bash:第21行:[{“帐户id”:“BJPKWSH”,“id”:“15BS0xP4F916YH4G0PV”},{“帐户id”:01BKK44V5F6A1FKH60Q0ANX9JX,“id:“01BK44V7”}]:未找到命令。/test.bash:第22行:EOF:未找到命令found@RajivRai请停止尝试在注释中放置代码块、错误消息或任何其他按行分割的内容。这不起作用。@RajivRai如果您在第22行遇到错误,您没有在我的答案中复制并粘贴脚本,因为它没有那么多行。您的括号是否在
echo
语句中放错了位置?我使用了这个“`echo$(jq-s”。[0]+[1]”@RajivRai任何内容都没有放错位置,也没有挂起。只需将整个脚本复制并粘贴到一个文件中,然后运行它即可查看。执行的内容与您在此处给出的内容完全一致,它会抛出错误../test.bash:第20行:警告:此处文档位于第20行,由文件结尾分隔(通缉
EOF')./test.bash:第19行:警告:此处文档第19行由文件结尾(通缉
EOF')分隔为空。/test.bash:第20行:[{“帐户id”:“01C”,“id”:“0XVWKCFV6P9CA5”},{“帐户id”:“CSDTHQ”,“id”:“631QGYBNSF”}]:未找到命令。/test.bash:第21行:[{“帐户id”:“BJPKWSH”,“id”:“15BS0xP4F916YH4G0PV”},{“帐户id”:01BKK44V5F6A1FKH60Q0ANX9JX,“id:“01BK44V7”}]:未找到命令。/test.bash:第22行:EOF:未找到命令found@RajivRai请停止尝试在注释中添加代码块、错误消息或任何其他按行分割的内容。这不起作用。@RajivRai如果您在第22行遇到错误,您没有在我的答案中复制并粘贴脚本,因为它没有那么多行。