【发布时间】:2022-01-03 00:13:03
【问题描述】:
我有以下 JSON 文件 (song.json),其中包含:
{
"Result": [
{
"ItemTitle": "Sometimes It Hurts",
"Artists": [
"Voost"
],
"MediaEnd": "00:02:15.8490000",
"Extro": "00:02:12.8200000",
"MediaId": 9551,
"ActualLength": "00:02:12.8200000",
"ItemType": "Song"
},
{
"ItemTitle": "Been a Long Time (Full Intention 2021 Remix)",
"Artists": [
"The Fog"
],
"MediaEnd": "00:03:11.3170000",
"IntroEnd": "00:00:07.4700000",
"Extro": "00:03:08.6300000",
"MediaId": 9489,
"ActualLength": "00:03:08.6300000",
"ItemType": "Song"
}
],
"ExceptionMessage": null,
"FailMessage": null,
"ExceptionTypeName": null
}
我想提取第一个“ItemTitle”和第一个“Artist”并将它们保存为变量。
在这个例子中,我正在寻找的结果是:
ItemTitle=Sometimes It Hurts
Artist=Voost
我一直在尝试使用 jq-win64.exe,因为它需要在 Windows 批处理文件中运行,但我无法获得正确的语法。我尝试了在这里找到的各种示例,但它们似乎都没有按要求工作。任何人都可以提出解决方案吗?
【问题讨论】:
-
您可以使用
jq -r 'Result[].ItemTitle, Result[].Artist song.json'来提取所需部分的值。 -
对不起,我发现我留下了一个错字。使用
jq -r .Result[].ItemTitle, .Result[].Artists[] song.json。看看this -
@Barbaros Özhan - 谢谢,但我收到错误:jq: error: syntax error, unexpected INVALID_CHARACTER, expecting $end (Windows cmd shell quoting issues?) at
, line 1: 'Result[].ItemTitle, jq: 1 编译错误 -
很抱歉,我仍然收到同样的错误消息。
-
我认为 jq 可能与 jq-win64 不同,因为我仍然遇到相同的错误。但是,您在 jqplay 上的示例并没有产生我正在寻找的内容。我只需要 FIRST ItemTitle 和 Artist。第二个需要忽略。
标签: json batch-file command-line jq