在JQ映射中使用整数键值

问题描述 投票:0回答:1

我正在尝试转换JSON

  "ideas": [
    {
      "id": 3,
      "ideaID": 499,
      "ideaName": "Apples & Bananas",
      "preference_order": 1,
      "_links": {
        "self": {
          "href": "/ideaProfile/api/v3/idea/3"
        }
      }
    },
    {
      "id": 5,
      "ideaID": 500,
      "ideaName": "Oranges and Peach",
      "preference_order": 1,
      "_links": {
        "self": {
          "href": "/ideaProfile/api/v3/idea/3"
        }
      }
    }
  ]
}

以地图格式。

{ <id1> : < ideaID1>, <id2> : < ideaID2> }

[当我尝试使用此JQ时,它可用于String feilds,但以Numberic Feild作为键,则无法使用。

.ideas | (map( { (. preference_order) : .ideaName } ) | add ) 

错误我得到-jq:错误(at:25):不能使用数字(1)作为对象键

摘要-https://jqplay.org/s/-6c0QitFA7

这是将字符串值作为键的查询....ideas | (map({(.ideaName):.ideaName})|添加)

json jq
1个回答
0
投票

键必须是字符串,因此必须转换要用作键的数值,可以使用tostring进行转换,如:

.ideas[]
| { (.id | tostring): .ideaID }
© www.soinside.com 2019 - 2024. All rights reserved.