Gson转换报错com.google.gson.JsonSyntaxException

转载请标明出处:http://blog.csdn.net/xiejinquan_/article/details/52002196


Gson将jsonobject的字符转化为Bean类或者将jsonarray的字符串转化为List类报出下列错误

07-23 08:04:21.247 13743-13743/com.jesse.volleydemo E/TAG: com.google.gson.JsonSyntaxException: 20160703000000
                                                           com.android.volley.VolleyError: com.google.gson.JsonSyntaxException: 20160703000000
                                                               at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:143)
                                                            Caused by: com.google.gson.JsonSyntaxException: 20160703000000
                                                               at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:81)
                                                               at com.google.gson.internal.bind.DateTypeAdapter.read(DateTypeAdapter.java:66)
                                                               at com.google.gson.internal.bind.DateTypeAdapter.read(DateTypeAdapter.java:41)
                                                               at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93)
                                                               at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172)
                                                               at com.google.gson.Gson.fromJson(Gson.java:803)
                                                               at com.google.gson.Gson.fromJson(Gson.java:768)
                                                               at com.google.gson.Gson.fromJson(Gson.java:717)
                                                               at com.google.gson.Gson.fromJson(Gson.java:689)
                                                               at com.jesse.volleydemo.volley.GsonRequest.parseNetworkResponse(GsonRequest.java:42)
                                                               at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:125)
                                                            Caused by: java.text.ParseException: Unparseable date: "20160703000000" (at offset 14)
                                                               at java.text.DateFormat.parse(DateFormat.java:555)
                                                               at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:79)
                                                               at com.google.gson.internal.bind.DateTypeAdapter.read(DateTypeAdapter.java:66) 
                                                               at com.google.gson.internal.bind.DateTypeAdapter.read(DateTypeAdapter.java:41) 
                                                               at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93) 
                                                               at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172) 
                                                               at com.google.gson.Gson.fromJson(Gson.java:803) 
                                                               at com.google.gson.Gson.fromJson(Gson.java:768) 
                                                               at com.google.gson.Gson.fromJson(Gson.java:717) 
                                                               at com.google.gson.Gson.fromJson(Gson.java:689) 
                                                               at com.jesse.volleydemo.volley.GsonRequest.parseNetworkResponse(GsonRequest.java:42) 
                                                               at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:125) 

原因在于引入Gson将jsonobject的字符转化为Bean类或者将jsonarray的字符串转化为List

由于转化过程中不能包括Date类型,所以报错

解决

实体类出现日期时候,类型不要定义为date,定义为String

public class User {
    private String userId;

    private String userName;

    private Date userBirthday;

    private Double userSalary;
将userName的类型转换为String

public class User {
    private String userId;

    private String userName;

    private String userBirthday;

    private Double userSalary;


你可能感兴趣的:(Gson转换报错com.google.gson.JsonSyntaxException)