Tous les produits
Search
Centre de documentation

Simple Log Service:Syntaxe JMESPath

Dernière mise à jour :Aug 18, 2026

Cette rubrique décrit la syntaxe JMESPath courante et fournit des exemples d'utilisation.

JMESPath est un langage de requête et de calcul amélioré pour le format JSON. Utilisez JMESPath pour extraire, calculer et convertir des données JSON. Pour plus d'informations, consultez le Tutoriel JMESPath.

Lors de la transformation des données, utilisez les fonctions json_select, e_json et e_split avec JMESPath afin de récupérer les valeurs des champs ou des expressions JSON, ou pour calculer des valeurs spécifiques. La syntaxe est la suivante :

json_select(value, "jmes_expression", ...)
e_json(field_name, jmes="jmes_expression", ...)
e_split(field_name, ... jmes="jmes_expression", ...)

Pour plus d'informations sur l'utilisation de ces fonctions, consultez les rubriques json_select, e_json et e_split.

Obtenir une valeur à l'aide de la clé d'un champ

  • Journal brut

    json_data: {"a":"foo","b":"bar","c":"baz"}
  • Syntaxe de transformation

    # Get the value of a from the JSON expression.
    e_set("a1", json_select(v("json_data"), "a"))
    # Get the value of b from the JSON expression.
    e_set("b1", json_select(v("json_data"), "b"))
    # Get the value of c from the JSON expression.
    e_set("c1", json_select(v("json_data"), "c"))
  • Résultat

    a1:foo
    b1:bar
    c1:baz
    json_data:{"a":"foo","b":"bar","c":"baz"}

Obtenir une valeur imbriquée

  • Journal brut

    json_data:{"a": {"b":{"c":{"d":"value"}}}}
  • Syntaxe de transformation

    # Get the value of d from the JSON expression.
    e_set("e", json_select(v("json_data"), "a.b.c.d"))
  • Résultat

    e:value
    json_data:{"a": {"b":{"c":{"d":"value"}}}}

Obtenir une valeur par découpage des données

  • Journal brut

    json_data:{"a": ["b", "c", "d", "e", "f"]}
  • Syntaxe de transformation

    # Get the values from field a, starting from slice 2. The value at slice 0 is b, and the value at slice 1 is c.
    e_set("key", json_select(v("json_data"), "a[2:]"))
  • Résultat

    json_data:{"a": ["b", "c", "d", "e", "f"]}
    key:["d", "e", "f"]

Utilisation combinée

  • Journal brut

    json_data:{"a": {"b": {"c": [{"d": [0, [1, 2]]}, {"d": [3, 4]}]}}}
  • Syntaxe de transformation

    # c[0] represents the {"d": [0, [1, 2]]} part. d[1] represents [1, 2]]. The return value is 1.
    e_set("key", json_select(v("json_data"), "a.b.c[0].d[1][0]"))
  • Résultat

    json_data:{"a": {"b": {"c": [{"d": [0, [1, 2]]}, {"d": [3, 4]}]}}}
    key:1

Obtenir une valeur à l'aide d'une projection

  • Exemple 1

    • Journal brut

      json_data:{"people": [{"first": "James", "last": "d"},{"first": "Jacob", "last": "e"},{"first": "Jayden", "last": "f"},{"missing": "different"}],"foo": {"bar": "baz"}}
    • Syntaxe de transformation

      # Get the values of the first fields from the people list.
      e_set("key", json_select(v("json_data"), "people[*].first"))
    • Résultat

      json_data:{"people": [{"first": "James", "last": "d"},{"first": "Jacob", "last": "e"},{"first": "Jayden", "last": "f"},{"missing": "different"}],"foo": {"bar": "baz"}}
      key:["James", "Jacob", "Jayden"]
  • Exemple 2

    • Journal brut

      json_data:{"ops": {"functionA": {"numArgs": 2},"functionB": {"numArgs": 3},"functionC": {"variadic": true}}}
    • Syntaxe de transformation

      # Get the values of the numArgs fields from ops.
      e_set("key", json_select(v("json_data"), "ops.*.numArgs"))
    • Résultat

      json_data:{"ops": {"functionA": {"numArgs": 2},"functionB": {"numArgs": 3},"functionC": {"variadic": true}}}
      key:[2, 3]
  • Exemple 3

    • Journal brut

      json_data:{"machines": [{"name": "a", "state": "running"},{"name": "b", "state": "stopped"},{"name": "c", "state": "running"}]}
    • Syntaxe de transformation

      # Get the name values from machines where the state is 'running'.
      e_set("key", json_select(v("json_data"), "machines[?state=='running'].name"))
    • Résultat

      json_data:{"machines": [{"name": "a", "state": "running"},{"name": "b", "state": "stopped"},{"name": "c", "state": "running"}]}
      key:["a", "c"]

Extraire plusieurs valeurs

  • Journal brut

    json_data:{"people": [{"name": "a","state": {"name": "up"}},{"name": "b","state": {"name": "down"}}]}
  • Syntaxe de transformation

    # Get the name and state values from people.
    e_set("key", json_select(v("json_data"), "people[].[name, state.name]"))
  • Résultat

    json_data:{"people": [{"name": "a","state": {"name": "up"}},{"name": "b","state": {"name": "down"}}]}
    key:[["a", "up"], ["b", "down"]]

Calculer le nombre d'éléments dans un tableau

  • Journal brut

    json_data:{"a": ["b", "c", "d", "e", "f"]}
  • Syntaxe

    # Get the length of array a.
    e_set("key", json_select(v("json_data"), "length(a)"))
    # Get the length of array a. If length(a) > 0, set the no-empty field to true.
    e_if(json_select(v("json_data"), "length(a)", default=0), e_set("no-empty", true))
  • Résultat

    json_data:{"a": ["b", "c", "d", "e", "f"]}
    key:5
    json_data:{"a": ["b", "c", "d", "e", "f"]}
    no-empty:true