現在我正在使用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給我想要的對象? –