我正在尝试转换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})| add)
答案 0 :(得分:2)
键必须是字符串,因此必须转换要用作键的数字值,可以使用tostring
进行转换,如下所示:
.ideas[]
| { (.id | tostring): .ideaID }