Как сериализовать и десериализовать список массивов объектов с помощью flexjson? - PullRequest
1 голос
/ 23 февраля 2011

Кто-нибудь знает, как сериализовать и десериализовать список массивов объектов с помощью flexjson?

Что я пробовал, это:

@GET 
@Produces(MediaType.APPLICATION_JSON)
@Path("/getAllGeoData")
public String getAllGeoData(){
    List<Object[]>l = geoMapService.getAllGeoData();

    return new JSONSerializer().serialize(l);
}

Хорошо ... это работает, и когда я вызываюВ этом веб-сервисе я получаю следующий результат:

[[50.0830292,8.2387331], [50.0830292,8.2387331], [50.0752003,8.2397125]]

В моем клиенте Android я пытаюсь десериализовать этот СписокОбъекты:

List<Object[]> l=new  JSONDeserializer<List<Object[]>>().deserialize(jsonstring);

, и я получаю следующее исполнение:

02-23 09:45:30.911: WARN/dalvikvm(270): VFY: unable to resolve exception class 157 (Ljava/beans/IntrospectionException;)
02-23 09:45:30.921: WARN/dalvikvm(270): VFY: unable to resolve exception class 157 (Ljava/beans/IntrospectionException;)
02-23 09:45:30.921: WARN/dalvikvm(270): VFY: unable to find exception handler at addr 0x16a
02-23 09:45:30.921: WARN/dalvikvm(270): VFY:  rejected Lflexjson/ObjectBinder;.bindIntoObject (Ljava/util/Map;Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/Object;
02-23 09:45:30.921: WARN/dalvikvm(270): VFY:  rejecting opcode 0x0d at 0x016a
02-23 09:45:30.931: WARN/dalvikvm(270): VFY:  rejected Lflexjson/ObjectBinder;.bindIntoObject (Ljava/util/Map;Ljava/lang/Object;Ljava/lang/reflect/Type;)Ljava/lang/Object;
02-23 09:45:30.931: WARN/dalvikvm(270): Verifier rejected class Lflexjson/ObjectBinder;
02-23 09:45:30.941: WARN/dalvikvm(270): threadid=15: thread exiting with uncaught exception (group=0x4001b188)
02-23 09:45:30.941: ERROR/AndroidRuntime(270): Uncaught handler: thread Thread-8 exiting due to uncaught exception
02-23 09:45:30.951: ERROR/AndroidRuntime(270): java.lang.VerifyError: flexjson.ObjectBinder
02-23 09:45:30.951: ERROR/AndroidRuntime(270):     at flexjson.JSONDeserializer.createObjectBinder(JSONDeserializer.java:169)
02-23 09:45:30.951: ERROR/AndroidRuntime(270):     at flexjson.JSONDeserializer.deserialize(JSONDeserializer.java:149)
02-23 09:45:30.951: ERROR/AndroidRuntime(270):     at com.mobilesociato.services.RemoteServiceGeoData$GeoDataThread.run(RemoteServiceGeoData.java:76)
02-23 09:45:30.951: ERROR/AndroidRuntime(270):     at java.lang.Thread.run(Thread.java:1096)

Помощь будет принята

Приветствую

1 Ответ

0 голосов
/ 23 февраля 2011

Похоже, что поставляемая вами версия пакета flexjson не совместима с вашей версией для Android.Вы добавили это в каталог libs / приложения?

Flexjson 2.1 должен работать на Android в соответствии с этому (прокрутить вниз).

Какorg.json пакет «встроен» в Android, будет ли жизнеспособным способ использовать его вместо этого?

...