如何使用jq交换对象的键和值

如何使用jq交换对象的键和值

本文介绍了如何使用jq交换对象的键和值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用jq,我想反转一个json对象,以便该属性成为值,而该值成为键.

Using jq I would like to inverse a json object so that the property becomes the value and the value becomes the key.

来源:

{
    "123": "Foobar"
    "567": "Poit"
}

目标:

{
    "Foobar": "123"
    "Poit": "567"
}

我该如何实现?

推荐答案

在您的特定情况下:

to_entries | map( {(.value) : .key } ) | add

更强大:

to_entries | map( {(.value|tostring) : .key } ) | add

或者,如果您愿意:

with_entries( .key as $k | .key = (.value|tostring) | .value = $k )

注意:所有这些都有可能是有损的.

Caveat: all these are potentially lossy.

这篇关于如何使用jq交换对象的键和值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-01 05:08