我有一个包含所有类型括号的文件{}[]()
- 适当地嵌套、打开和关闭。我想返回字符串 ( text:
) 之后匹配方括号内的内容。该文件的内容如下所示:
....
{
"text": [
{
"string1": ["hello", "world"],
"string2": ["foo", "bar"]
},
{
"string1": ["alpha", "beta"],
"string2": ["cat", "dog"]
}
],
"unwanted": [
{
"stuff": ["nonesense"]
}
]
}
.... and so on
我想回来
{
"string1": ["hello", "world"],
"string2": ["foo", "bar"]
},
{
"string1": ["alpha", "beta"],
"string2": ["cat", "dog"]
}
该文件是json
类型并且具有相似的结构。我想具体返回方括号中的内容text:
。
答案1
您提供的不是有效的 JSON。将表达式括起来,修复其他错误,并添加一个反例:
{
"text": [
{
"string1": ["hello", "world"],
"string2": ["foo", "bar"]
},
{
"string1": ["alpha", "beta"],
"string2": ["cat", "dog"]
}
],
"unwanted": [
{
"stuff": ["nonesense"]
}
]
}
您可以使用 JSON 解析器(例如jq
.例如,这将挑选出text
数组:
jq -c '.text[]'
{"string1":["hello","world"],"string2":["foo","bar"]}
{"string1":["alpha","beta"],"string2":["cat","dog"]}
或者
jq '.text[]'
{
"string1": [
"hello",
"world"
],
"string2": [
"foo",
"bar"
]
}
{
"string1": [
"alpha",
"beta"
],
"string2": [
"cat",
"dog"
]
}
它们在语法上是相同的;只是布局略有不同。