/ / Jak mogę skierować JSON do / z POJO dla BlackBerry Java? - json, jeżyna, pojo

Jak mogę skierować JSON do / z POJO dla BlackBerry Java? - json, jeżyna, pojo

Piszę aplikację kliencką RIM BlackBerry. BlackBerry wykorzystuje uproszczoną wersję Java (brak generycznych, brak adnotacji, ograniczone wsparcie dla kolekcji, itp., Z grubsza Java 1.3). Mój klient będzie mówił JSON na serwer. Mamy kilka POJO generowanych przez JAXB, ale są one mocno oznaczone adnotacjami i używają różnych klas, które nie są dostępne na tej platformie (ArrayList, BigDecimal, XMLGregorianCalendar). Mamy również XSD używany przez kompilator JAXB-XJC do generowania tych plików źródłowych.

Będąc leniwym programistą, którym jestem, naprawdęraczej nie tłumacz ręcznie istniejących plików źródłowych na klasy JSON-MASAD zgodne z Java 1.3. Próbowałem już JAXB 1.0.6 xjc. Niestety, nie rozumie pliku XSD wystarczająco dobrze, aby emitować odpowiednie klasy.

Czy znasz narzędzie, które będzie pobierało pliki XSD JAXB 2.0 i emitowało klasy Java 1.3? Czy znasz bibliotekę rozrządową JSON, która działa ze starą Javą?

Myślę, że jestem skazany na porażkę, ponieważ JSON przybył około 2006 roku, a Java 5 została wydana pod koniec 2004 roku, co oznacza, że ​​ludzie prawdopodobnie nie pisaliby kodu JSON-parsing dla starych wersji Javy.

Wydaje się jednak, że muszą istnieć dobre biblioteki JSON dla J2ME, dlatego też mam nadzieję.

Odpowiedzi:

1 dla odpowiedzi № 1

Na pierwszą część powodzenia, ale naprawdę niemyślę, że znajdziesz lepsze rozwiązanie niż samemu zmodyfikować kod, ale istnieje dobra biblioteka J2ME JSON, do której można znaleźć link do lustra tutaj.


0 dla odpowiedzi nr 2

Skończyło się na użyciu apt (narzędzie do przetwarzania adnotacji) do przejechania ponad 1.5 źródeł i emitowania nowego źródła przyjaznego dla 1.3. Okazało się, że to całkiem niezłe rozwiązanie!

Wciąż nie udało mi się znaleźć eleganckiego sposobufaktyczne zestawianie JSON, ale narzędzie apt może prawdopodobnie pomóc napisać kod źródłowy, który łączy się z biblioteką JSON, tak jak to wskazał Jonathan.