2016-05-01 18 views
11

Ich habe ein Problem mit der Suche nach einem Array oder Liste Größe mit Stefan Goessner JsonPath. Ich benutze die Version json-path-2.0.0.Array-Größe mit jsonpath Ausdruck - Stefan Goessner JsonPath

Mein jsonpath Ausdruck ist $.orders.length und JSON sieht ungefähr so ​​aus:

{ 
 
    "orders" : [ 
 
    ... 
 
    ] 
 
}

Sein mit dem folgenden Fehler Fehler:

com.jayway.jsonpath.PathNotFoundException: Property ['length'] not found in path $['orders'] 

Und ich versuchte, mit $.orders.length() zu denen ist wieder mit dem folgenden Fehler fehlgeschlagen:

com.jayway.jsonpath.PathNotFoundException: Property ['length()'] not found in path $['orders']

Bitte empfehlen Sie mir, wie man die Länge des Arrays zu erhalten, unter Verwendung von Gössner des JsonPath Ausdruck.

[EDIT] Es folgt, wie ich die Konfiguration bin zu erhalten:

com.jayway.jsonpath.Configuration conf = com.jayway.jsonpath.Configuration.defaultConfiguration().addOptions(Option.DEFAULT_PATH_LEAF_TO_NULL); 
    DocumentContext documentContext = JsonPath.using(conf).parse(orderJson); 
    Object val = documentContext.read(jsonPathExpression); 

Antwort

17

Es scheint, dass die Unterstützung für die length() ein Arrays Rückkehr war nur added in version 2.1.0 der jayway json-Pfad Bibliothek.

Basierend auf einigen Schnelltests scheint der Ausdruck $.orders.length() sowohl mit Version 2.1.0 als auch mit Version 2.2.0 zu funktionieren, also denke ich, dass Sie nur Ihre Abhängigkeitsversion aktualisieren müssen, um den angezeigten Fehler zu beheben.

+1

Dank mate, habe ich auf die Version 2.2.0 aktualisiert und es funktioniert perfekt mit der neuesten Version –

Verwandte Themen