首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用windows命令行将JSON文件解析为变量?

如何使用windows命令行将JSON文件解析为变量?
EN

Stack Overflow用户
提问于 2013-10-14 08:30:10
回答 3查看 42.4K关注 0票数 10

我有一个名为JSONtest.json文件,它说:

代码语言:javascript
运行
复制
{
    "test":true,
    "limit": 
    {
        "min":0.5,
        "max":1.5
    }
}

我希望能够在Windows命令行中读取这个文件,并将这些对象解析为变量。

,我该怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-14 08:36:37

如果使用Windows作为命令行,则可以使用ConvertFrom-JSON cmdlet:http://powershelljson.codeplex.com/

确保您的PowerShell版本高于3.0,作为ConvertFrom-JSON is available from that version

如果您使用的是普通的旧CMD,您将需要一个外部工具。我喜欢jq:http://stedolan.github.io/jq/。本教程使用curl作为示例,但您也可以轻松地使用echo或从文件中读取JSON。

票数 11
EN

Stack Overflow用户

发布于 2020-05-14 17:04:00

PowerShell例子。从文件创建:$js = Get-Content file.json | ConvertFrom-Json. Get子键:$js.key.subkey

票数 0
EN

Stack Overflow用户

发布于 2020-06-06 15:18:49

我希望能够在Windows命令行中读取这个文件,并将这些对象解析为变量。

我将把它解释为,你想要做的事:

代码语言:javascript
运行
复制
SET min=0.5
SET max=1.5

我建议使用强大的工具xidel来完成这项任务。

Basic命令:

代码语言:javascript
运行
复制
xidel -s test.json -e "$json/limit/min" -e "$json/limit/max"
xidel -s test.json -e "$json/limit/(min,max)"

无论使用2个查询返回每个值,还是使用1个查询返回两个值,这两个命令都应该返回:

代码语言:javascript
运行
复制
0.5
1.5

具有自定义变量名的导出:

代码语言:javascript
运行
复制
FOR /F "delims=" %A IN ('xidel -s test.json -e "min:=$json/limit/min" -e "max:=$json/limit/max" --output-format^=cmd') DO %A
FOR /F "delims=" %A IN ('xidel -s test.json -e "$json/limit/(min:=min,max:=max)" --output-format^=cmd') DO %A

这两个命令都可以:

代码语言:javascript
运行
复制
SET min=0.5
SET max=1.5

以密钥名作为变量名的导出:

代码语言:javascript
运行
复制
FOR /F "delims=" %A IN ('xidel -s test.json -e "$json/(limit)() ! eval(x'{.}:=$json/limit/{.}')[0]" --output-format^=cmd') DO %A

回答我自己的问题:FOR /F "delims=" %%i in ('type test.json ^| jq .limit.min') DO SET min=%%i

如果这就是你想要的那么..。

代码语言:javascript
运行
复制
FOR /F "delims=" %A IN ('xidel -s test.json -e "$json/limit/min"') DO SET min=%A

或者..。

代码语言:javascript
运行
复制
FOR /F "delims=" %A IN ('xidel -s test.json -e "min:=$json/limit/min" --output-format^=cmd') DO %A

...is你所需要的一切。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19356220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档