我正面临使用Android中的类文件解析json响应的问题。我遇到了“转换期间的问题”这样的错误。任何人都可以告诉我代码中的错误是什么?我在这里给我的嵌套类和响应。使用改进的json解析问题-Android
public class SendCouponCode {
int statusCode;
boolean status;
String message;
boolean furtherActionNeeded;
ArrayList<Extras> extra;
public void setExtra(ArrayList<Extras> extra) {
this.extra = extra;
}
public class Extras{
String nextAction;
String nextActionTitle;
ArrayList<Item> items;
public ArrayList<Item> getItems() {
return items;
}
public void setItems(ArrayList<Item> items) {
this.items = items;
}
public String getNextAction() {
return nextAction;
}
public void setNextAction(String nextAction) {
this.nextAction = nextAction;
}
public String getNextActionTitle() {
return nextActionTitle;
}
public void setNextActionTitle(String nextActionTitle) {
this.nextActionTitle = nextActionTitle;
}
public class Item{
int id;
String value;
boolean isExclusive;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public boolean isExclusive() {
return isExclusive;
}
public void setExclusive(boolean exclusive) {
isExclusive = exclusive;
}
}
}
public int getStatusCode() {
return statusCode;
}
public void setStatusCode(int statusCode) {
this.statusCode = statusCode;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public boolean isFurtherActionNeeded() {
return furtherActionNeeded;
}
public void setFurtherActionNeeded(boolean furtherActionNeeded) {
this.furtherActionNeeded = furtherActionNeeded;
}}
而且,对此我解析响应是
{
"further_action_needed": true,
"status": true,
"message": "Coupon code is being processed, further action is needed for completion.",
"status_code": 901,
"extra": {
"items": [
{
"is_exclusive": false,
"id": 7,
"name": "XXX"
},
{
"is_exclusive": false,
"id": 8,
"name": "XXX"
},
{
"is_exclusive": false,
"id": 9,
"name": "XX"
},
{
"is_exclusive": false,
"id": 21,
"name": "XX"
},
{
"is_exclusive": false,
"id": 26,
"name": "Default Batch"
},
{
"is_exclusive": false,
"id": 57,
"name": "XX"
},
{
"is_exclusive": false,
"id": 63,
"name": "XX"
}
],
"next_action_title": "Select Your Batches",
"next_action": "ADD_BATCHES" }}
我GSON生成器类使用这个领域
Gson gson = new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES).create();
我的错误日志
me.entri.entrime.beans.EntriError: Something went wrong internally. Please consider reporting the issue to us.
03-02 16:43:41.431 28965-28965/me.entri.entrime W/System.err: at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:383)
03-02 16:43:41.431 28965-28965/me.entri.entrime W/System.err: at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:240)
03-02 16:43:41.432 28965-28965/me.entri.entrime W/System.err: at java.lang.reflect.Proxy.invoke(Proxy.java:813)
03-02 16:43:41.432 28965-28965/me.entri.entrime W/System.err: at $Proxy2.sendCoupon(Unknown Source)
03-02 16:43:41.432 28965-28965/me.entri.entrime W/System.err: at me.entri.entrime.api.GeneralApiService.sendCouponCode(GeneralApiService.java:786)
03-02 16:43:41.432 28965-28965/me.entri.entrime W/System.err: at me.entri.entrime.api.GeneralApiService.onHandleIntent(GeneralApiService.java:339)
03-02 16:43:41.432 28965-28965/me.entri.entrime W/System.err: at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:68)
03-02 16:43:41.432 28965-28965/me.entri.entrime W/System.err: at android.os.Handler.dispatchMessage(Handler.java:102)
03-02 16:43:41.432 28965-28965/me.entri.entrime W/System.err: at android.os.Looper.loop(Looper.java:154)
03-02 16:43:41.432 28965-28965/me.entri.entrime W/System.err: at android.os.HandlerThread.run(HandlerThread.java:61)
改装不能实例化没有SendCouponCode实例的Extras和Item的实例。我会尽量让所有嵌套的类静态。请让我知道这可不可以帮你。 –
内部类不能有静态块 –
如果A类包含内部静态类B,那么B可以有静态内部类C. –