相关文章推荐
销魂的开心果  ·  PRML勘误表_prml 错误表-CSDN博客·  1 年前    · 
伤情的热水瓶  ·  folium画点集不要标签 - CSDN文库·  1 年前    · 
无邪的仙人球  ·  RxJava3.0 ...·  1 年前    · 
跑龙套的手链  ·  第十五届中国保险创新大奖公布(附获奖名单)_ ...·  1 年前    · 
一身肌肉的毛豆  ·  osg控制相机移动 - 西北逍遥 - 博客园·  1 年前    · 
Code  ›  使用批处理脚本回显json文件中字段的值。开发者社区
批处理
https://cloud.tencent.com/developer/ask/sof/107274334
坚强的猴子
1 年前
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
提问

问 使用批处理脚本回显json文件中字段的值。

Stack Overflow用户
提问于 2022-09-08 07:42:49
EN
{
    "fields" : {
        "field_10061" : 24,   
        "field_10101" : "GB"
}

我有一个名为.json的storage.json文件位于C:\files\storage.json中,storage.json的内容如下所示:-

我想要创建一个批处理文件,将"field_10101“的值存储在变量中,并回显它。我试过下面的命令,但它不起作用。

set LOC=C:\files\storage.json
for /f  delims^=^"^ tokens^=3 %%A in ('findstr /R "field_10101" %LOC%') do set new=%%A
echo %new%.
2 40 0 票数 0
EN
json
batch-file
field

回答 2

Stack Overflow用户

发布于 2022-09-09 11:05:44

您正在处理JSON,所以请使用正确的JSON解析器!

用 西德尔

FOR /F "delims=" %%A IN ('
  xidel -s "C:\files\storage.json" -e "$json/fields/field_10101"
') DO SET "new=%%A"

或者使用 --output-format=cmd 和点表示法,而不是XPath表示法:

FOR /F "delims=" %%A IN ('
  xidel -s "C:\files\storage.json" -e "new:=($json).fields.field_10101" --output-format^=cmd
') DO %%A

或使用 jq

FOR /F "delims=" %%A IN ('
  jq -r ".fields.field_10101" "C:\files\storage.json"
') DO SET "new=%%A"
票数 1
EN

Stack Overflow用户

发布于 2022-09-08 21:40:03

set LOC=C:\files\storage.json
for /f  delims^=^"^ tokens^=3 %%A in ('findstr /R "field_10101" %LOC%') do set new=%%A
call :getvalue %new%
echo %value%
goto exit
 
推荐文章
销魂的开心果  ·  PRML勘误表_prml 错误表-CSDN博客
1 年前
伤情的热水瓶  ·  folium画点集不要标签 - CSDN文库
1 年前
无邪的仙人球  ·  RxJava3.0 操作符之错误处理操作符使用_rxjava3 observableerror.empty() accept捕获不到错误-CSDN博客
1 年前
跑龙套的手链  ·  第十五届中国保险创新大奖公布(附获奖名单)_新浪财经_新浪网
1 年前
一身肌肉的毛豆  ·  osg控制相机移动 - 西北逍遥 - 博客园
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号