https://stackoverflow.com/questions/31094305/java-gson-getting-the-list-of-all-keys-under-a-jsonobject
As of Gson 2.8.1 you can use
keySet()
:String json = "{\"key1\":\"val\", \"key2\":\"val\"}";
JsonParser parser = new JsonParser();
JsonObject jsonObject = parser.parse(json).getAsJsonObject();
Set<String> keys = jsonObject.keySet();
Since Java 8 you can use Streams as better looking alternative:
String str = "{\"key1\":\"val1\", \"key2\":\"val2\"}";
JsonParser parser = new JsonParser();
JsonObject jObj = (JsonObject) parser.parse(str);
List<String> keys = jObj.entrySet()
.stream()
.map(i -> i.getKey())
.collect(Collectors.toCollection(ArrayList::new));
keys.forEach(System.out::println);
You can use JsonParser to convert your Json into an intermediate structure which allow you to examine the json content.
String yourJson = "{your json here}";
JsonParser parser = new JsonParser();
JsonElement element = parser.parse(yourJson);
JsonObject obj = element.getAsJsonObject(); //since you know it's a JsonObject
Set<Map.Entry<String, JsonElement>> entries = obj.entrySet();//will return members of your object
for (Map.Entry<String, JsonElement> entry: entries) {
System.out.println(entry.getKey());
}
댓글
댓글 쓰기