我应该如何反序列化以下JSON以跳过根元素并仅解析此JSON的内部。我想避免创建其他Root仅包含MapWrapper字段的3rd类。
Root
MapWrapper
{ "root": { "language": "en", "map": { "k1": { "name": "n1", }, "k2": { "name": "n2", } } } }
因此,我只希望有以下两个类:
class MapWrapper { private String language; private Map<String, MyMapEntry> map; } class MyMapEntry { String name; }
您可以GSON为此使用库。
GSON
下面的代码将解决您的问题。
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);