Query a JSONObject in java

gson, jackson, java, json

Solution

I've just unexpectedly found very interesting project: JSON Path

JsonPath is to JSON what XPATH is to XML, a simple way to extract parts of a given document.

With this library you can do what you are requesting even easier, then my previous suggestion:

String hello = JsonPath.read(json, "$.data.data2.value");

System.out.println(hello); //prints hello

Hope this might be helpful either.

Problem

I was wondering if somewhere out there exists a java library able to query a JSONObject. In more depth I'm looking for something like: ``` String json = "{ data: { data2 : { value : 'hello'}}}"; ... // Somehow we managed to convert json to jsonObject ... String result = jsonObject.getAsString("data.data2.value"); System.out.println(result); ``` I expect to get "hello" as output. So far, the fastest way I have found is using Gson: ``` jsonObject.getAsJsonObject("data").getAsJsonObject().get("data2").getAsJsonObject("value").getAsString(); ``` It's not actually easy to write and read. Is there something faster?

Original source