Je souhaite extraire des valeurs d'un document JSON en utilisant les opérateurs de chemin. Par exemple, j'obtiens tous les identifiants de produits inclus dans le fichier via $..product_id. Mais pour obtenir le "id" lorsque j'utilise $..id, j'obtiens une sortie pour chaque élément id, quel que soit le niveau du JSON auquel se trouve la variable. Par exemple, dans ma sortie, j'obtiens une ligne pour l'ID "12345678" ainsi que pour "11223344" qui ne devrait pas l'être car il s'agit d'un sous-ensemble du premier ID.

 {
"next_offset": 20,
"records": [
    {
        "id": "12345678",
        "date": "2020-02-14",
        "product_id": "asdf1234",
        "product_name": "Product_test^_1",
        "template_link": {
            "name": "aassddff",
            "id": "11223344",
            "_acl": {
                "fields": [],
                "_hash": "345thvz356b56v456b"
            }
        },
        ....
    }
]

}

Comment puis-je définir l'opérateur de chemin pour accéder uniquement aux champs "id" d'un niveau spécifique ?

0
Bryan 14 févr. 2020 à 18:27

1 réponse

Meilleure réponse

Pour le JSON indiqué dans votre question, utilisez $.records.*.id.

0
cassiomolin 14 févr. 2020 à 15:46