JQ如何通过转义从内部数组中读取数据
JQ how to read data from inner array with escaping
我的 json
看起来像:
{
"response": {
"resNum": 222222,
"start": 0,
"array": [{
"tr_id": "xx33fg",
"user_id": "6678",
"x_date": "2021-04-27",
"list": [
"[{\"id\":\"123\",\"val2\":\"RX\",\"date\":\"2020-11-13\"}",
"{\"id\":\"456\",\"val2\":\"DB\",\"date\":\"2020-09-20\"}]"
]
}]
}
}
我需要把它转换成这样:
{
"Result": [
{
"x_date": "2021-04-10",
"array": [
{
"id": "345",
"val2": "RX",
"date": "2021-04-10"
},
{
"id": "223",
"val2": "XC",
"date": "2021-04-10"
}
]
}
]
}
如何使用 jq
从列表中读取 id
、val2
和 date
?我试过了
id: .response? | .array[]? | .list[]? | .id
但是没有成功,我得到一个错误。我认为带有转义的嵌套数组是原因。有人可以帮我吗?谢谢!
使用 fromjson
对字符串进行反转义。
jq '.response.array[]
| {Result:[{x_date, array: .list
| join(",")
| fromjson}]}'
输出与您发布的不同,但我不知道您想如何翻译这些值。
我的 json
看起来像:
{
"response": {
"resNum": 222222,
"start": 0,
"array": [{
"tr_id": "xx33fg",
"user_id": "6678",
"x_date": "2021-04-27",
"list": [
"[{\"id\":\"123\",\"val2\":\"RX\",\"date\":\"2020-11-13\"}",
"{\"id\":\"456\",\"val2\":\"DB\",\"date\":\"2020-09-20\"}]"
]
}]
}
}
我需要把它转换成这样:
{
"Result": [
{
"x_date": "2021-04-10",
"array": [
{
"id": "345",
"val2": "RX",
"date": "2021-04-10"
},
{
"id": "223",
"val2": "XC",
"date": "2021-04-10"
}
]
}
]
}
如何使用 jq
从列表中读取 id
、val2
和 date
?我试过了
id: .response? | .array[]? | .list[]? | .id
但是没有成功,我得到一个错误。我认为带有转义的嵌套数组是原因。有人可以帮我吗?谢谢!
使用 fromjson
对字符串进行反转义。
jq '.response.array[]
| {Result:[{x_date, array: .list
| join(",")
| fromjson}]}'
输出与您发布的不同,但我不知道您想如何翻译这些值。