3
我有一個生成以下JSON的REST WCF服務。如何從Android的WCF服務中反序列化複雜的JSON對象?
{
"RecordsUpdateResult":[
{
"ID":115,
"Crud":2,
"Data":{
"__type":"Client:#PIT.Library.AndroidClasses",
"ID":115,
"Adress":"str. 1",
"City":"Luzern",
"Description":"Client 115",
"PostalCode":6000
}
},
{
"ID":128,
"Crud":2,
"Data":{
"__type":"Client:#PIT.Library.AndroidClasses",
"ID":128,
"Adress":"",
"City":"",
"Description":"Client 128",
"PostalCode":0
}
}
]
}
我該如何反序列化android手機與gson庫?
我懷疑問題是「__type」:「客戶端:#PIT.Library.AndroidClasses」。 我在Android端有一個名爲「Client」的類。
我想將此JSON反序列化爲下面的類。
public class StammdatenUpdate extends ObjectBase
{
@SerializedName("Crud")
private CRUD crud;
@SerializedName("Data")
private Object data;
@Override
public String getSha1Hash()
{
// TODO Auto-generated method stub
return null;
}
public synchronized CRUD getCrud()
{
return crud;
}
public synchronized void setCrud(CRUD crud)
{
this.crud = crud;
}
public synchronized Object getData()
{
return data;
}
public synchronized void setData(Object data)
{
this.data = data;
}
}
屬性ID位於基類中。
...
Type listType = new TypeToken<ArrayList<StammdatenUpdate>>()
{}.getType();
Gson gson = new GsonBuilder().create();
// List<StammdatenUpdate> RecordsUpdate(StammdatenType type, Dictionary<long, string> listWithHashes)
postData.setParameter(new String[] { "type", "listWithHashes" });
postData.setValues(new String[] { gson.toJson(StammdatenType.CLIENT), gson.toJson(map) });
String json = post.execute(postData);
List<StammdatenUpdate> retValue = null;
if(Tools.isNullOrEmpty(json) == false)
{
retValue = gson.fromJson(json, listType);
}
return retValue;
這篇文章的答案可以幫助你嗎? http://stackoverflow.com/questions/12197138/how-to-parse-inner-json-objects-arrays/12197186#12197186 –
不是。我使用gson,我的類有屬性@SerializedName。 – GENiALi
答案也適用於gson,並且該示例還具有@SerializedName屬性......您是否也可以發佈您正在發出請求並處理響應的類? –