2013-11-15 146 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

相關問題