我使用jq将一个复杂的json对象转换为一个更小的对象.我的问题是:

jq 'to_entries[]| {companyId: (.key), companyTitle: (.value.title), companyCode: (.value.booking_service_code)}' companies.json

Now, the (.key) is parsed as a string, yet I want companyId to be a number.

目前我的结果如下:

{
  "companyId": "1337",
  "companyTitle": "Some company title",
  "companyCode": "oxo"
}

但它应该是这样的:

{
  "companyId": 1337,
  "companyTitle": "Some company title",
  "companyCode": "oxo"
}

推荐答案

jq has inbuilt functions, you can pipe your key to tonumber:

jq 'to_entries[]| {companyId: (.key)|tonumber, companyTitle: (.value.title), companyCode: (.value.booking_service_code)}' companies.json

根据文件:

tonumber函数将其输入解析为数字.会的

Example jq '.[] | tonumber' Input [1, "1"] Output 1 1

Json相关问答推荐

使用WSO2 JsonTransform Mediator对空值执行JsonExceptionUndeletedOperationException

如何在Gatsby/Reaction中获取JSON-File子 node

与错误相关的未定义&Quot;不是有效的JSON

如果主对象中已存在属性,则不应在Jolt中引用次对象

如何避免解析 ISuperObject 类型字段中的 json 对象

jq如何合并两个json对象

(已回答)JSON 读取函数返回未定义而不是预期值 - Typescript

将 GEOSwift.JSON 转换为 Swift 中的 struct

正向闪烁后的微调值

JSONPath:查找子项目条件在字符串列表中的项目

如何将该 JSON 解析为 Kotlin 类?

使用 jq 获取特定键的所有父键

在 rust 中从 API 反序列化 serde_json

boost::json::value 的大括号初始化将其从对象转换为数组

为什么在测试 RSPEC 时 JBuilder 不返回 JSON 中的响应正文

IE8 原生 JSON.parse 错误导致堆栈溢出

从 HttpResponse 获取 json

在 Postgres 中向 JSON 对象添加元素

有没有办法使用 Jackson 将 Map 转换为 JSON 表示而不写入文件?

JSON 模式 - 如果对象*不*包含特定属性则有效