Gson 解析時候報錯: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $

來源:互聯網
上載者:User


03-17 23:05:00.373 18335-18335/? E/AndroidRuntime: FATAL EXCEPTION: main
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime: Process: tech.androidstudio.jsongsondemo, PID: 18335
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{tech.androidstudio.jsongsondemo/tech.androidstudio.jsongsondemo.MainActivity}: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2314)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread.access$800(ActivityThread.java:148)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:135)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5310)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:  Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.google.gson.Gson.fromJson(Gson.java:879)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.google.gson.Gson.fromJson(Gson.java:844)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.google.gson.Gson.fromJson(Gson.java:793)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.google.gson.Gson.fromJson(Gson.java:765)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at tech.androidstudio.jsongsondemo.MainActivity.onCreate(MainActivity.java:54)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.Activity.performCreate(Activity.java:5953)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1128)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread.access$800(ActivityThread.java:148) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:135) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5310) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:  Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:388)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:209)
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.google.gson.Gson.fromJson(Gson.java:879) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.google.gson.Gson.fromJson(Gson.java:844) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.google.gson.Gson.fromJson(Gson.java:793) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.google.gson.Gson.fromJson(Gson.java:765) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at tech.androidstudio.jsongsondemo.MainActivity.onCreate(MainActivity.java:54) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.Activity.performCreate(Activity.java:5953) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1128) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2267) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread.access$800(ActivityThread.java:148) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1292) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:135) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5310) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372) 
03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901) 

03-17 23:05:00.373 18335-18335/? E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696) 


原因是資料的前後多了[ ]中括弧。

String gsonStr1= "[{name:'name0',age:0}]";

解決辦法:

將前後的中括弧去掉就好了。

//修改後{name:'name0',age:0},要去掉前後的括弧。String gsonStr1= "{name:'name0',age:0}";


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.