使用jq提取多个字段并创建一个新对象

Using jq to extract multiple fields and create a new object

我有这个特定的 json 对象,

[
    {
        "userid" : "fe2e48b7-858b-4a0d-964a-efb8483a00c4",
        "lastupdateddate" : "84798000-13cd-11ea-8080-808080808080",
        "transactionid" : "10383117.2216238756",
        "accountid" : "10383117.10921962",
        "misctransactiondata" : null,
        "rawtransactiondata" : "{\"id\":\"1234567\",\"account_id\":\"456451962\"}",
        "source" : "gateway",
        "transactiondatajson" : "{\"version\":\"v1\",\"transactionId\":\"4234234.2216238756\",\"accountId\":\"345345345.10921962\"}",
        "version" : "v1"
    }
]

我想变成,

{
    "transactions": [
        {
            "version": "v1",
            "transactionId": "4234234.2216238756",
            "accountId": "345345345.10921962",
            "rawData": {
                "id": "1234567",
                "account_id": "456451962"
            }
        }
    ]
}

目前我有,

jq '{transactions: [.[0] | (.transactiondatajson|fromjson) ]}'

创建对象的事务数组,但是我不完全确定如何从 .rawtransactiondata

创建 rawData 嵌套对象

如何最好地附加对象 jq ?

多种可能性之一:

.[]
| {transactions: 
    [(.transactiondatajson|fromjson)
     + {rawData: (.rawtransactiondata|fromjson)} ] }