现在我正在使用Gson将JSON反序列化为对象。如何将JSON反序列化为具有HashMap属性的对象?
的JSON看起来是这样的:
[
{
"hash":"c8b2ce0aacede58da5d2b82225efb3b7",
"instanceid":"aa49882f-4534-4add-998c-09af078595d1",
"text":"{\"C_FirstName\":\"\",\"ContactID\":\"2776967\",\"C_LastName\":\"\"}",
"queueDate":"2016-06-28T01:03:36"
}
]
我的实体对象看起来是这样的:
public class AppCldFrmContact {
public String hash;
public String instanceid;
public HashMap<String,String> text;
public String queueDate;
}
如果text
是String
数据类型,一切都会好起来的。但是,我无法按照我的意愿访问不同的字段。
有没有办法将给定的JSON转换为我想要的对象?
我得到的错误是:Expected BEGIN_OBJECT but was STRING at line 1 column 174
,这是可以理解的,如果它不能解析它。
的代码做了解析:
Type listType = new TypeToken<List<AppCldFrmContact>>() {
}.getType();
List<AppCldFrmContact> contacts = gson.fromJson(response.body, listType);
显示的'text'字段是一个包含JSON对象而不是JSON对象的字符串! – Robert
如果它是一个JSON对象,它会是什么样子?那么有没有办法解析给定的JSON给我想要的对象? –