jq数组过滤从一个文件到另一个文件
jq array filtration from a file to another file
我有下面的 json,我想在其中过滤掉 result 对象,它是一个使用一些脚本的数组,因为结果对象可以填充多个对象它。我想从“jq -c .results[i]."com.src.main.client.details"
中获取数据到 json 文件中以进一步处理。
{
"foo": {
"requestID": "89279f54-2f18-4301-b94d-1c413be1cb68",
"signature": {
"*": "*"
}
},
"results": [
{
"com.src.main.client.details": {
"doc": "string",
"details": [
{
"amount": null,
"output": null,
"properties": [],
"characteristic": [],
"component": null,
"period": null,
"internals": {
"Currency": "EUR",
"value": 0
}
}
]
}
},
{
"com.src.main.client.details": {
"doc": "string",
"details": [
{
"amount": null,
"output": null,
"properties": [
{
"characteristic": [],
"component": null,
"period": null,
"internals": {
"Currency": "EUR",
"value": 0
}
}
]
}
]
}
}
]
}
有没有一种方法可以通过一个命令实现它,或者是否有人可以建议脚本逻辑。谢谢
期望输出:
[
{
"doc": "string",
"details": [
{
"amount": null,
"output": null,
"properties": [],
"characteristic": [],
"component": null,
"period": null,
"internals": {
"Currency": "EUR",
"value": 0
}
}
]
},
{
"doc": "string",
"details": [
{
"amount": null,
"output": null,
"properties": [
{
"characteristic": [],
"component": null,
"period": null,
"internals": {
"Currency": "EUR",
"value": 0
}
}
]
}
]
}
]
三期。
.results[i]
应该是 .results[]
以下生成 JSON 个对象流:
.results[]."com.src.main.client.details"
要获取数组,请使用
[ .results[]."com.src.main.client.details" ]
或
.results | map(."com.src.main.client.details")
最后,还有一个 shell 引用问题。在“类似 sh”的 shell 中,您需要
jq -c '.results | map(."com.src.main.client.details")'
注意单引号。
Demo 在 jqplay
我有下面的 json,我想在其中过滤掉 result 对象,它是一个使用一些脚本的数组,因为结果对象可以填充多个对象它。我想从“jq -c .results[i]."com.src.main.client.details"
中获取数据到 json 文件中以进一步处理。
{
"foo": {
"requestID": "89279f54-2f18-4301-b94d-1c413be1cb68",
"signature": {
"*": "*"
}
},
"results": [
{
"com.src.main.client.details": {
"doc": "string",
"details": [
{
"amount": null,
"output": null,
"properties": [],
"characteristic": [],
"component": null,
"period": null,
"internals": {
"Currency": "EUR",
"value": 0
}
}
]
}
},
{
"com.src.main.client.details": {
"doc": "string",
"details": [
{
"amount": null,
"output": null,
"properties": [
{
"characteristic": [],
"component": null,
"period": null,
"internals": {
"Currency": "EUR",
"value": 0
}
}
]
}
]
}
}
]
}
有没有一种方法可以通过一个命令实现它,或者是否有人可以建议脚本逻辑。谢谢
期望输出:
[
{
"doc": "string",
"details": [
{
"amount": null,
"output": null,
"properties": [],
"characteristic": [],
"component": null,
"period": null,
"internals": {
"Currency": "EUR",
"value": 0
}
}
]
},
{
"doc": "string",
"details": [
{
"amount": null,
"output": null,
"properties": [
{
"characteristic": [],
"component": null,
"period": null,
"internals": {
"Currency": "EUR",
"value": 0
}
}
]
}
]
}
]
三期。
.results[i]
应该是 .results[]
以下生成 JSON 个对象流:
.results[]."com.src.main.client.details"
要获取数组,请使用
[ .results[]."com.src.main.client.details" ]
或
.results | map(."com.src.main.client.details")
最后,还有一个 shell 引用问题。在“类似 sh”的 shell 中,您需要
jq -c '.results | map(."com.src.main.client.details")'
注意单引号。
Demo 在 jqplay