【发布时间】:2020-06-21 14:06:59
【问题描述】:
GsonBuilder builder = new GsonBuilder();
Gson mGson = builder.create();
spinnerData = Arrays.asList(mGson.fromJson(response, Item.class));
执行此代码后,spinnerdata 列表的大小显示为 0。我的响应是:
{"结果":[{"item_code":"r2010","item_name":"rice"},{"item_code":"w2010","item_name":"wheat"},{"item_code": "p2010","item_name":"paddy"},{"item_code":"b2010","item_name":"bran"}]}
我的 item.java 代码是:
package com.example.booking;
import com.google.gson.annotations.SerializedName;
public class Item {
@SerializedName("item_code")
private String item_code;
@SerializedName("item_name")
private String item_name;
public Item() {
}
public Item(String item_code, String item_name) {
this.item_code = item_code;
this.item_name = item_name;
}
public void setCode(String item_code) {
this.item_code = item_code;
}
public void setName(String item_name) {
this.item_name = item_name;
}
public String getCode() {
return this.item_code;
}
public String getName() {
return this.item_name;
}
}
错误显示:
E/AndroidRuntime: 致命异常: main 进程:com.example.booking,PID:12452 com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 预期 BEGIN_OBJECT 但在第 1 行第 1 列是 STRING 在 com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176) 在 com.google.gson.Gson.fromJson(Gson.java:803) 在 com.google.gson.Gson.fromJson(Gson.java:768) 在 com.google.gson.Gson.fromJson(Gson.java:717) 在 com.google.gson.Gson.fromJson(Gson.java:689) 在 com.example.booking.MainActivity$2.onResponse(MainActivity.java:82) 在 com.example.booking.MainActivity$2.onResponse(MainActivity.java:77) 在 com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60) 在 com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30) 在 com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:179) 在 android.app.ActivityThread.main(ActivityThread.java:5730) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:681) 引起:java.lang.IllegalStateException:预期 BEGIN_OBJECT 但在第 1 行第 1 列是 STRING 在 com.google.gson.stream.JsonReader.beginObject(JsonReader.java:374) 在 com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:165) 在 com.google.gson.Gson.fromJson(Gson.java:803) 在 com.google.gson.Gson.fromJson(Gson.java:768) 在 com.google.gson.Gson.fromJson(Gson.java:717) 在 com.google.gson.Gson.fromJson(Gson.java:689) 在 com.example.booking.MainActivity$2.onResponse(MainActivity.java:82) 在 com.example.booking.MainActivity$2.onResponse(MainActivity.java:77) 在 com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60) 在 com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30) 在 com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:179) 在 android.app.ActivityThread.main(ActivityThread.java:5730) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:681)
应用更改后
【问题讨论】:
-
嗨 Suneha Ghosh,欢迎来到 stackoverflow!请发布
Item类的源代码。
标签: android