我正在尝试重新创建,但是使用的是将json存储在文件中,而不是在命令行上传递字符串。我正在做的事情是:
$ cat test.json
{"number":$number}
$ jq --arg number 3000 test.json
jq: error: test/0 is not defined at <top-level>, line 1:
test.json
jq: 1 compile error
我做错了什么?
我一直在使用jq在批处理环境中自动化一些数据处理。最近,我遇到了一个用例,需要从json递归应用到json数据中的字符串。不幸的是,JQ1.5本机没有walk/1函数,所以我需要添加它。我很难找到正确的位置来添加代码。我需要添加以下代码:
def walk(f):
. as $in
| if type == "object" then
reduce keys_unsorted[] as $key
( {}; . + { ($key): ($in[$key] | walk(f)) } ) | f
elif type == "arr
我编写了一个脚本从file.json中检索某些值。如果我向jq select提供值,它就能工作,但是变量似乎不起作用(或者我不知道如何使用它)。
#!/bin/sh
#this works ***
projectID=$(cat file.json | jq -r '.resource[] | select(.username=="myemail@hotmail.com") | .id')
echo "$projectID"
EMAILID=myemail@hotmail.com
#this does not work *** no val
我有一个递归的json结构,它包含一些属性和一个包含子节点的节点,它的格式与它所需要的深度相同。下面的示例不完整,也不与我的数据相同,但它显示了粗略的结构。
[{"page":{
title: "my title 1",
children: [
{"page":{
title: "my title 2",
children: [ ... ]
},{"page":{
title: "my t