当前位置: 首页 > 面试题库 >

如何使用jq更新json文档中的单个值?

鲁涵意
2023-03-14
问题内容

如果我忽略了一些很明显的东西,就可以选择应用程序;我刚刚找到了jq并且正在尝试使用它来更新一个JSON值而不影响周围的数据。

我想将curl结果传送到jq,更新值,然后将更新的JSON传送到curl -X PUT。就像是

curl http://example.com/shipping.json | jq '.' field: value | curl -X PUT http://example.com/shipping.json

到目前为止,我已经使用一起破解了它sed,但是在查看了一些|=运算符示例之后,jq我确定我不需要这些。

这是一个JSON示例- 在保留其余JSON的同时,如何使用jqset "local": false

{
  "shipping": {
    "local": true,
    "us": true,
    "us_rate": {
      "amount": "0.00",
      "currency": "USD",
      "symbol": "$"
    }
  }
}

问题答案:

您可以使用=运算符设置对象的值。 |=另一方面用于更新值。这是一个微妙但重要的区别。筛选器的上下文会更改。

由于将属性设置为常数,因此请使用=运算符。

.shipping.local = false

请注意,在为属性设置值时,它不一定必须存在。您可以通过这种方式轻松添加新值。

.shipping.local = false | .shipping.canada = false | .shipping.mexico = true


 类似资料:
  • 验证后,我试图在/users/处查找用户文档,然后我想使用auth对象中的数据以及一些自定义用户属性更新文档。但我得到一个错误,更新方法不存在。有没有办法更新单个文档?所有firestore文档示例都假定您拥有实际的文档id,并且没有任何示例使用where子句进行查询。

  • 我在Elasticsearch中索引了一个文档,如下所示: 我尝试通过以下命令更新计数字段: 但是,我收到了以下错误: 我到底做了什么,却不见了?我在http://www.elasticsearch.org/guide/reference/api/update.html跟踪文件,但它不起作用。 此外,我还包括父字段: 但还是没有成功。有人能帮我解决这个错误吗?

  • 问题内容: 我想更新一个字典中的值,该值只能由字典中的另一个值来标识。也就是说,鉴于此输入: 我想将伴随格式更改为“ csv”: 我发现这可行: 但这似乎很冗长,所以我想知道是否有一种更优雅的方式来表达这一点。jq似乎缺少某种表达式选择器,等效于xpath。 (当我开始这个问题时,我发现了,所以并没有我想的那么糟。) 问题答案: 您要寻找的是一项复杂的任务: 也许不短,但是根据要求它更优雅。请参阅

  • 问题内容: 有没有人有使用更新的示例?它已在此处进行了文档记录,但是文档尚不清楚,并且不包含有效的示例。我尝试了以下方法: 我得到 我想使用部分文档进行更新,但是update方法不使用任何名为“ doc”或“ document”的参数。 问题答案: 您快要准备好了,只需要将您的身体放在“ doc”字段中即可。使用elasticsearch-py进行部分更新的正确方法如下:

  • 问题内容: 我正在使用MongoDB数据库,该数据库的收集模型包括 班级 , 学生 , 学科 和[学术] 表现 。以下是基于猫鼬的架构和模型: 该集合的文件是最复杂的地段; 示例文档为: 我能够使用以下代码检索现有的班级文档并将其添加到分数中: 但是,如何添加/更新/删除该特定学生的成绩?我需要能够通过以下方式与集合进行交互: 检索所有学生或特定学生的分数(检索数组中的特定元素) 为特定主题添加/

  • 问题内容: 我有一个如下的json文件,我想使用更新值 update.json 我想编写一个PowerShell脚本,在其中 如何使用参数? 问题答案: 这是一种方法: 根据@FLGMwt和@mikemaccana,我改进了with,因为默认深度值为2,对于深度大于2的对象,尽管有对象,您仍会收到类信息。