0
我發送一些數據到我的服務器並得到響應。gson如何識別類實例和數組?
萬一出現錯誤的響應是一個類的實例:
{
errorCode (int),
errorMsg (String)
}
在成功的情況下的響應是一個項目陣列。
我試圖運行下面的代碼,並得到了一個錯誤:
代碼:
private void afterServerOfferResponse(final Gson gson,
String result) {
ServerErrorMessage serverErrorMessage = gson.fromJson(
result, ServerErrorMessage.class);
if (serverErrorMessage.errorCode == 0) {
Type collectionType = new TypeToken<ArrayList<Offer>>() {
}.getType();
mOffersList = gson.fromJson(result, collectionType);
mAdapter = new ImageAdapter(OffersListActivity.this,
mOffersList);
mListView.setAdapter(mAdapter);
錯誤:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2
你會如何檢查出錯誤的情況不改變服務器響應太多?
但是,錯誤響應和列表項都是有效的,我只是wa nt來區分它們。將無錯格式放入catch塊是否正確? –
不要在catch-block裏面做。有兩種不同的方法。首先調用一個方法來解析數組類,如果有任何異常,然後調用其他方法解析錯誤消息 – Libin
請參閱我的編輯代碼plaats –