対応する角かっこ間の内容を返します。

対応する角かっこ間の内容を返します。

{}[]()すべての種類の括弧(適切にネスト、オープン、クローズ)を含むファイルがあります。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"
  ]
}

構文は同じですが、レイアウトが若干異なります。

おすすめ記事