Mateusz Chromiński Mateusz Chromiński - 4 months ago 69
Java Question

Skip root element while deserializing json

How should I deserialize following JSON to skip root element and parse just the inner part of this JSON. I'd like to avoid creating additional, 3rd class

, which would include only

"root": {
"language": "en",
"map": {
"k1": {
"name": "n1",
"k2": {
"name": "n2",

So I'd like to have only these two classes:

class MapWrapper {
private String language;
private Map<String, MyMapEntry> map;

class MyMapEntry {
String name;


you can use GSON Library for this.

Below code will solve your problem.

public class ConvertJsonToObject {

    private static Gson gson = new GsonBuilder().create();

    public static final <T> T getFromJSON(String json, Class<T> clazz) {
        return gson.fromJson(json, clazz);

    public static final <T> String toJSON(T clazz) {
        return gson.toJson(clazz);

String json; // your jsonString
Map<String,Object> r = ConvertJsonToObject.getFromJSON(json,Map.class);
String innerJson = ConvertJsonToObject.toJson(r.get("root"));
MapWrapper _r = ConvertJsonToObject.getFromJSON(innerJson,MapWrapper.class);