今天在解析JSON的时候碰到了怎么解析都不成功的情况,错误码如下
Process: com.xiaochou.zhiquan, PID: 27747
com.alibaba.fastjson.JSONException: class not has default constructor :****
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.<init>(JavaBeanDeserializer.java:44)
at com.alibaba.fastjson.parser.ParserConfig.createJavaBeanDeserializer(ParserConfig.java:322)
at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:304)
at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:253)
at com.alibaba.fastjson.parser.DefaultExtJSONParser.parseArray(DefaultExtJSONParser.java:140)
at com.alibaba.fastjson.parser.DefaultExtJSONParser.parseArray(DefaultExtJSONParser.java:123)
at com.alibaba.fastjson.JSON.parseArray(JSON.java:260)
at com.lidroid.xutils.http.HttpHandler.onProgressUpdate(HttpHandler.java:218)
at com.lidroid.xutils.task.PriorityAsyncTask$InternalHandler.handleMessage(PriorityAsyncTask.java:385)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5425)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:952)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
经过反复的调试,发现仅仅是因为在实体类里少写了一个空的构造方法
public class Dimissionemployees implements Serializable {
private String id;
private String icccId;
private String cardId;
public void setId(String id){
this.id = id;
}
public String getId(){
return this.id;
}
public void setIcccId(String icccId){
this.icccId = icccId;
}
public String getIcccId(){
return this.icccId;
}
public void setCardId(String cardId){
this.cardId = cardId;
}
public String getCardId(){
return this.cardId;
}
public Dimissionemployees(String id, String icccId, String cardId) {
this.id = id;
this.icccId = icccId;
this.cardId = cardId;
}
//还需要写一个空的构造方法
public Dimissionemployees(){
}
}
这样就没问题了