如何使用 jq 和 map 从 App Studio 中的一个响应中获取多个列表? (活动活动)
How to get multiple list from one response in App Studio using jq and map? (Active Campaign)
我有以下 JSON,我正在使用 API。 json 有 2 个列表,1- main_roles 和 2- cc_roles。使用以下代码我可以获得 1 个列表。但我想在下拉列表中获得两个列表(显示,值)。
如何使用 map 在 1 jq 中同时获取列表 1- main_roles 和 2- cc_roles?
JSON
{
"invoice": {
"invoice_id": "b494a46396e47726873708f71a71a228ba2782fa",
"main_roles": [
{
"name": "Agent"
},
{
"name": "Customer"
}
],
"cc_roles": [
{
"name": "Manager"
}
]
}
}
JSON代码
"select": {
"label": "Invoice",
"form_fields": [
{
"label": "Select Role",
"id": "selectRole",
"type": "dropdown",
"required": true,
"options": {
"!pipe": [
{
"!http": {
"method": "GET",
"path": "https://api.test.com/getroles"
}
},
{
"!jq": ".invoice.main_roles | map({ display: .name , value: .name })"
}
]
}
}
]
}
如果你想把两个列表作为单独的数组,只需一个接一个地调用它们,用逗号分隔 ,
:
.invoice | .main_roles, .cc_roles | map({ display: .name , value: .name })
[
{
"display": "Agent",
"value": "Agent"
},
{
"display": "Customer",
"value": "Customer"
}
]
[
{
"display": "Manager",
"value": "Manager"
}
]
如果你想将它们组合成一个数组,使用 +
:
将它们相加
.invoice | .main_roles + .cc_roles | map({ display: .name , value: .name })
[
{
"display": "Agent",
"value": "Agent"
},
{
"display": "Customer",
"value": "Customer"
},
{
"display": "Manager",
"value": "Manager"
}
]
我有以下 JSON,我正在使用 API。 json 有 2 个列表,1- main_roles 和 2- cc_roles。使用以下代码我可以获得 1 个列表。但我想在下拉列表中获得两个列表(显示,值)。
如何使用 map 在 1 jq 中同时获取列表 1- main_roles 和 2- cc_roles?
JSON
{
"invoice": {
"invoice_id": "b494a46396e47726873708f71a71a228ba2782fa",
"main_roles": [
{
"name": "Agent"
},
{
"name": "Customer"
}
],
"cc_roles": [
{
"name": "Manager"
}
]
}
}
JSON代码
"select": {
"label": "Invoice",
"form_fields": [
{
"label": "Select Role",
"id": "selectRole",
"type": "dropdown",
"required": true,
"options": {
"!pipe": [
{
"!http": {
"method": "GET",
"path": "https://api.test.com/getroles"
}
},
{
"!jq": ".invoice.main_roles | map({ display: .name , value: .name })"
}
]
}
}
]
}
如果你想把两个列表作为单独的数组,只需一个接一个地调用它们,用逗号分隔 ,
:
.invoice | .main_roles, .cc_roles | map({ display: .name , value: .name })
[
{
"display": "Agent",
"value": "Agent"
},
{
"display": "Customer",
"value": "Customer"
}
]
[
{
"display": "Manager",
"value": "Manager"
}
]
如果你想将它们组合成一个数组,使用 +
:
.invoice | .main_roles + .cc_roles | map({ display: .name , value: .name })
[
{
"display": "Agent",
"value": "Agent"
},
{
"display": "Customer",
"value": "Customer"
},
{
"display": "Manager",
"value": "Manager"
}
]