我有一个json字符串,格式如下所示,我正在尝试使用gson反序列化
{
"MAPS": [
{
"value": true,
"enabled": [
{
"isoCountryCode": "USA"
}
]
}
]
}
以下是我班级和校友的结构
public class Configuration {
private Map<EnumType, List<Object>> enumToObjectMap;
}
public enum EnumType {
MAPS;
}
当我尝试使用
反序列化它时new Gson().fromJson(jsonString, Configuration.class)
我为enumToObjectMap获取空值。请帮助我。
答案 0 :(得分:1)
可能有更正确的解决方案,但这里有几个解决方法:
将JSON字符串包装在父字段中:
jsonString = "{\"enumToObjectMap\":" + jsonString + "}";
Configuration c = new Gson().fromJson(jsonString, Configuration.class);
单独反序列化地图并通过构造函数或setter将其传递到您的类中:
Configuration c = new Configuration();
c.setMap(new Gson().fromJson(jsonString,
new TypeToken<EnumMap<EnumType, List<Object>>>() {}.getType()));
答案 1 :(得分:0)
您可以通过添加此代码进行验证:
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
String json = "";
///////////////////////////
StringBuilder sb = new StringBuilder();
////////////////////////////////////
if (br != null) {
json = br.readLine();
sb.append(json);
System.out.println(json);
}
JSONObject jso = new JSONObject(sb.toString());
System.out.println(jso);