标题: [其他] jq插入json数据出错(用for echo 不能输出逗号)(如何将命令的输出赋值给变量) [打印本页]
作者: wangchuanxiaolu 时间: 2018-6-6 11:19 标题: jq插入json数据出错(用for echo 不能输出逗号)(如何将命令的输出赋值给变量)
1、定义一个json数据变量BK_V;
2、使用jq向BK_V中插入一条新的json数据,正常;
3、使用for将插入新数据后的数据重新赋值给BK_V,发生错误;
4、测试发现,用for echo BK_V时少输出了逗号,echo BK_V输出的数据是作为jq的输入,少了逗号jq就无法识别成json格式,导致无法插入新的json数据。
有什么方法使用for echo BK_V正常输出逗号,获取有其他方法将插入数据后的数据重新赋值给BK_V;
作者: codegay 时间: 2018-6-6 12:24
日常劝退。换个别的编程语言啦。
好多语言处理JSON都直接内置有标准库了。
作者: WHY 时间: 2018-6-6 13:16
Microsoft Windows [版本 10.0.17134.48]
(c) 2018 Microsoft Corporation。保留所有权利。
C:\Users\WHY>cd /d D:\jq
D:\jq>set BK_V={"timestamp":"20180606173933","metric":{"name":"wangchuan"}}
D:\jq>for /f "tokens=*" %i in ('set /p"=%BK_V%"^<nul ^| jq -c ".metric |= .+ {\"age\":\"18\"}"') do echo %i
D:\jq>echo {"timestamp":"20180606173933","metric":{"name":"wangchuan","age":"18"}}
{"timestamp":"20180606173933","metric":{"name":"wangchuan","age":"18"}}
D:\jq>
作者: wangchuanxiaolu 时间: 2018-6-6 15:46
回复 3# WHY
大神正解,请收下小弟的膝盖!
作者: cmd1152 时间: 2021-11-7 17:55
for /f "tokens=*" %i in ('set /p"=%BK_V%"^<nul ^| jq -c ".metric |= .+ {\"age\":\"18\"}"') do echo %i
这样有*就会有问题,应该是:- for /f "tokens=" %i in ('set /p"=%BK_V%"^<nul ^| jq -c ".metric |= .+ {\"age\":\"18\"}"') do echo %i
复制代码
作者: cmd1152 时间: 2021-11-7 17:56
回复 2# codegay
批处理真的有那么不好吗?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |