2013-11-15 2 views
0

я использовал JSON Befor единственной новой вещи
является то, что я с помощью Google залпа на Android App
стороны клиента: боковогоVolley 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

Смежные вопросы