我应该如何反序列化以下JSON以跳过根元素并仅解析此JSON的内部部分.我想避免创建额外的第3类Root,其中只包括MapWrapper字段.
{
"root": {
"language": "en",
"map": {
"k1": {
"name": "n1",
},
"k2": {
"name": "n2",
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以我想只有这两个类:
class MapWrapper {
private String language;
private Map<String, MyMapEntry> map;
}
class MyMapEntry {
String name;
}
Run Code Online (Sandbox Code Playgroud)
Byt*_*ter 10
你可以使用GSONLibrary.
下面的代码将解决您的问题.
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);
Run Code Online (Sandbox Code Playgroud)