2 votes

Utilisation de JSONPath pour obtenir uniquement les enfants du niveau supérieur

J'ai un tableau JSON qui contient 4 objets, chacun avec un nom de domaine. id champ. Le quatrième objet contient deux enfants qui possèdent également chacun un champ id champ. Je veux seulement obtenir les identifiants des 4 enfants du niveau supérieur ; je ne veux pas les identifiants des enfants du 4ème élément.

Il s'agit d'une version simplifiée de la chaîne JSON :

[
  {
    "id": 709709537
  },
  {
    "id": 1104067257
  },
  {
    "id": 2961327618
  },
  {
    "id": 9066007668,
    "photo": {
      "id": 461295287,
      "thumbnails": [
        {
          "id": 461295307
        }
      ]
    }
  }
]

Utilisation de JSONPath, $..id me donnera les 6 éléments id, sans possibilité de déterminer de quel niveau ils proviennent, par ex.

[  
   709709537,
   1104067257,
   2961327618,
   9066007668,
   461295287,
   461295307
]

Je m'attendais $.id pour me donner les 4 niveaux supérieurs id des enfants, mais ça ne me donne rien.

J'ai fait des recherches sur de nombreuses pages et tenté plusieurs expériences en utilisant des testeurs JSON (par ex. https://jsonpath.curiousconcept.com/ ) et ne trouve pas d'expression JSONPath pour obtenir uniquement les 4 premiers éléments d'identification des enfants.

Existe-t-il une expression JSONPath qui me permette d'obtenir uniquement les identifiants des enfants du niveau supérieur ?

4voto

Nol Points 147

Je pense que ça devrait être

$[*].id

Rappelez-vous que vous les avez dans un tableau, et que vous voulez chaque élément dans le tableau. Puis vous voulez leur .id après.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X