2017-08-13 1 views
1

I Java-Anwendung haben, die wie diese JSON-Strings erhält manÜberprüfen Sie, ob JSON containts Knoten mit dem Wert

{ 
    "name": "testName", 
    "message": [ 
     "TestMessage." 
    ] 
} 

Was ich brauche, um zu überprüfen ist, ob es eine „Nachricht“ Array Knoten ist, der Wert von „Testmessage hat. " in irgendeinem seiner Elemente.

Ich habe Zugriff auf com.jway.jsonpath.JsonPath in meinem Code. Aber es sieht so aus, dass es nur den Wert eines bestimmten Knotens lesen kann. Z.B. wie dies werde ich erste Element „message“ Array

JsonPath.read(content, "$.message[0]") 

Aber ich werde alle Elemente des Arrays in Java holen auf diese Weise holen können, haben und dort zu validieren. Stattdessen möchte ich diese Überprüfung von JsonPath-Engine selbst durchführen.

Wie kann ich dieses Ziel mit JsonPath erreichen? Ist es besser, eine andere Bibliothek zu verwenden?

Antwort

2

Sie können die Filteroperationen verwenden.

Filter sind logische Ausdrücke, die zum Filtern von Arrays verwendet werden. Ein typischer Filter wäre [? (@. Age> 18)], wobei @ das aktuelle Element darstellt, das gerade verarbeitet wird. Komplexere Filter können mit logischen Operatoren & & und || erstellt werden. Zeichenfolgenliterale müssen durch einfache oder doppelte Anführungszeichen ([? (@. Color == 'blue')] oder [? (@. Color == "blue")]) eingeschlossen sein.

wie folgt aus:

JsonPath.read(json, "$.message[?(@ == "TestMessage.")]"); 

mehr können die readme.MD von https://github.com/json-path/JsonPath

+0

siehe Vielen Dank für die Antwort. Ich kann sehen, dass es hier funktioniert https://jsonpath.herokuapp.com/. Aber es funktioniert nicht in meiner App und hier https://jsonpath.curiousconcept.com/. Die Version von json-path, die ich verwende, ist 2.0.0. Weißt du, ob ich eine bestimmte Version verwenden sollte? Oder was kann der Grund sein, warum es nicht funktioniert? – Bogdan

+0

Ok, ich habe auf die neueste Version von jway umgestellt, die 2.4.0 ist, jetzt funktioniert es. Vielen Dank für Ihre Hilfe! – Bogdan

Verwandte Themen