首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用jq库将树视图json保存为文件

使用jq库将树视图json保存为文件
EN

Stack Overflow用户
提问于 2021-06-03 12:21:40
回答 1查看 222关注 0票数 2

在我的例子中,我喜欢这个json数据:

代码语言:javascript
代码运行次数:0
运行
复制
sshpass -p $PASSWORD ssh -o StrictHostKeyChecking=no $LOGIN /bin/bash -s << EOT

echo "Saving to file.."

USER_DATA="{\"id\":"$USER_ID",\"sha\":"$USER_SHA"}"
echo "{\"id\":"$PRODUCT_ID",\"user\":"$USER_DATA"}" | jq -re > ~/user.json

EOT

当我尝试保存这个json文件时,使用消息获取错误:

解析错误:第21列第1行不匹配的“}”

如何正确地将json数据保存到文件中?

EN

回答 1

Stack Overflow用户

发布于 2021-06-03 13:37:45

您应该使用jq来创建json。试着做这样的事情:

代码语言:javascript
代码运行次数:0
运行
复制
sshpass -p $PASSWORD ssh -o StrictHostKeyChecking=no $LOGIN /bin/bash -s << EOT

echo "Saving to file.."

jq --arg id "$PRODUCT_ID" -n '{$id}' | \
jq --arg id "$USER_ID" \
   --arg sha "$USER_SHA" \
   --arg user "user" \
   '.[$user]={$id, $sha}' > ~/user.json

EOT

解释:

  • --arg id "$PRODUCT_ID":为jq创建一个变量,名为id,它包含从$PRODUCT_ID
  • -n '{$id}':create一个新的json模板
    • 获得的值--它将在这里使用变量名及其值
    • ,这将创建json {id : $id}

  • jq ... | jq ...:我们传递第一个jq命令的输出作为第二个command
  • '.[$user]={$id, $sha}'的输入:我们向输入
    • .[$user]中添加新元素:来自$user variable
    • {$id, $sha}:将从变量创建一个对象的元素名称,即{id : $id, sha : $sha}
    • the整体命令创建元素:user : {id : $id, sha : $sha}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67821411

复制
相关文章

相似问题

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