2013-11-15 148 views
0

我使用JSON以前生产唯一的新东西
的是,我使用的Android应用
客户端谷歌凌空 :凌空GSON例外预计BEGIN_OBJECT但BEGIN_ARRAY位于第1行第11列

public void onResponse(JSONObject response) { 
         Log.i("asaf","jsone="+response.toString()); 
         WorkerSeekerContiner wsc=new WorkerSeekerContiner(); 
         Gson gsonConvertFrom = new Gson(); 

         wsc=gsonConvertFrom.fromJson(response.toString(), WorkerSeekerContiner.class); 
         Log.i("asaf","list size="+wsc.getList().size()); 

服务器端:

Gson gsonConvertTo = new Gson(); 
     String jsonString = gsonConvertTo.toJson(send); 
     JSONObject myJsonObj; 
     try { 
     myJsonObj = new JSONObject(jsonString); 
     out.print(myJsonObj.toString()); 

的toString所述的JSONObject响应的:(保持正确的数据)

{ 
"list":[ 
[251,"t1","t1","Nov 7, 2018",31.483521,34.596634,9000,"Nov 10, 
2013","yardwork","a"] 
,[252,"t1","t1","Nov 7, 
2018",31.483521,34.696634,9000,"Nov 10, 2013","yardwork","a"] 
] 
} 

但是当我尝试gsonConvertFrom.fromJson它抛出异常:

WSC = gsonConvertFrom.fromJson(response.toString(), WorkerSeekerContiner.class);

 11-15 16:50:52.792: E/AndroidRuntime(17804): com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 
Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 11 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:180) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:81) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:60) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.Gson.fromJson(Gson.java:755) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.Gson.fromJson(Gson.java:721) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.Gson.fromJson(Gson.java:670) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.Gson.fromJson(Gson.java:642) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at asaf.findwork.linkup$1.onResponse(linkup.java:131) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at asaf.findwork.linkup$1.onResponse(linkup.java:1) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:65) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at android.os.Handler.handleCallback(Handler.java:615) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at android.os.Handler.dispatchMessage(Handler.java:92) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at android.os.Looper.loop(Looper.java:153) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at android.app.ActivityThread.main(ActivityThread.java:5037) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at java.lang.reflect.Method.invokeNative(Native Method) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at java.lang.reflect.Method.invoke(Method.java:511) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:821) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at dalvik.system.NativeStart.main(Native Method) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 11 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.stream.JsonReader.expect(JsonReader.java:339) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:322) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:168) 
    11-15 16:50:52.792: E/AndroidRuntime(17804): ... 22 more 

和最后我的目标只是抱着对象的列表:

public class WorkerSeekerContiner { 
    List<WorkerSeeker> list; 

Workerseeker类:​​

@Entity 
public class WorkerSeeker implements Serializable { 
    private static final long serialVersionUID = 1L; 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 
    @Temporal(javax.persistence.TemporalType.DATE) 
    private Calendar startdate; 
    @Temporal(javax.persistence.TemporalType.DATE) 
    private Calendar enddate; 
    private Double offerprice; 
    private Double latitude; 
    private Double longitude; 
    private String address; 
    private String userName; 
    private String type; 
    private String description; 

神坝它:((
问题得到期运用createNativeQuery使用(List)q3.getResultList();给我一个对象列表,而不是列表Wo rkerSeeker errrrrrrrrrrrrrrrrrrr
如果有人运行到这个问题的解决方法是非常简单只需添加
createNativeQuery(sqlqury,urclass.class);将返回arrayof urclass不对象

+0

请分享您的WorkerSeeker类 –

+0

确定它就在那里(服务器端,客户端为同样的事情没有实体)时,我就解决此问题的StringTokenizer了,只是建立我来自每个字符串的对象仍然id爱知道为什么这不起作用;/ – user1246950

回答

0

createNativeQuery将重试Query.getResultList();上的对象的列表;不workseeker
的列表是一个IDOT;/

+0

请详细解释你的答案。 – JUL2791

相关问题