找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 24216|回复: 5

[其他] jq插入json数据出错(用for echo 不能输出逗号)(如何将命令的输出赋值给变量)

[复制链接]
发表于 2018-6-6 11:19:23 | 显示全部楼层 |阅读模式
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;
发表于 2018-6-6 12:24:59 | 显示全部楼层


日常劝退。换个别的编程语言啦。
好多语言处理JSON都直接内置有标准库了。
发表于 2018-6-6 13:16:26 | 显示全部楼层
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>

评分

参与人数 2技术 +2 收起 理由
codegay + 1 1
wangchuanxiaolu + 1 乐于助人

查看全部评分

 楼主| 发表于 2018-6-6 15:46:15 | 显示全部楼层
回复 3# WHY

大神正解,请收下小弟的膝盖!
发表于 2021-11-7 17:55:25 | 显示全部楼层
for /f "tokens=*" %i in ('set /p"=%BK_V%"^<nul ^| jq -c ".metric |= .+ {\"age\":\"18\"}"') do echo %i

这样有*就会有问题,应该是:
  1. for /f "tokens=" %i in ('set /p"=%BK_V%"^<nul ^| jq -c ".metric |= .+ {"age":"18"}"') do echo %i
复制代码
发表于 2021-11-7 17:56:06 | 显示全部楼层
回复 2# codegay


    批处理真的有那么不好吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 04:32 , Processed in 0.032892 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表