JSONPath resolver für Java-Objekte
Wie kann ich einen Wert aus einem Java-Objekt stattdessen aus einem JSON-string durch die Anwendung einer JSONPath Ausdruck?
Erhalte ich ein Java-Objekt, das erstellt wird, aus einer JSON-Zeichenfolge (über Jackson, keine Möglichkeit, es zu beeinflussen):
public class MyJSONInputClass {
private String foo;
private int[] bar = { 1, 5, 9 };
private OtherClass baz;
....
}
Ich weiter haben einige JSONPath Ausdrücke als Java-Strings reflektieren Werte in das Objekt (Sie können sehr viel komplexer sein):
"$.foo"
"$.bar[5]"
"$.baz.someProperty"
Möchte ich zur Lösung dieser Ausdrücke mit den resultierenden java-Objekt (Instanz von MyJSONInputClass, nach unmarshalling):
public Object resolve(MyJSONInputClass input, String expression) {
...
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benutze ich
ObjectMapper
aus Jackson zu erstellenMap<String, Object>
aus den gegebenen Java-Objekt (mit anderen Karten für Eigenschaften, die nicht parseable als primitive Typen). Dann JSONPath kann es Lesen und auswerten des Ausdrucks.Abhängigkeiten zu enthalten:
Einige Hinweise: