2009-09-24 22 views
9

Chcę przeanalizować odpowiedź pochodzącą z serwera w formacie JSON. Zrobiłem trochę googlowania, ale nie mogę znaleźć żadnej biblioteki ani słoika.Jak analizować odpowiedź JSON w Blackberry/J2ME?

Wszędzie dostarczany jest kod open source jako plik zip.

Jak mogę to osiągnąć? jeśli nie ma słoika dostępnego dla BlackBerry, to jak używać tego kodu Open Source w mojej aplikacji?

Odpowiedz

9

Jest open source JSON for J2ME API on Mobile and Embedded Application Developers Project

Również można download JSON ME (Zip file) at JSON.org nie już obsługiwane. Ale możesz go uzyskać od here.

Wierzę, że można po prostu skopiować zawartość folderu sdc projektu json do folderu src projektu Blackberry, odświeżyć go w eksploratorze pakietów i skompilować go.

Zobacz szczegółowe informacje: Using JavaScript Object Notation (JSON) in Java ME for Data Interchange

+2

Tak, możemy użyć kodu JSON mnie od json.org i działa świetnie. Tak jak powiedziałeś, po prostu wyodrębnij kod źródłowy do własnego drzewa kodu źródłowego i zostanie on wkompilowany w twoją aplikację. –

+0

"pobierz JSON ME (plik Zip) na JSON.org" link jest zepsuty – paullb

+0

zobacz link aktualizacja –

3

Kiedy masz ciąg reakcji, a następnie użyć tego kodu

try { 
     JSONObject jsonres = new JSONObject(jsons); 
     System.out.println("Preview icon from jsonresp:"+jsonres.getString("mydata")); 
    } catch (JSONException ex) { 
     Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); 
    } 

jeden jsons rzeczą jest ciąg reakcji, która jest w formacie JSON & Mydata klucza danych, dzięki czemu można uzyskać dostęp do danych z JSONObject. Thnks

2

Można też spróbować:

http://pensivemode.fileave.com/verified_json.jar

Ja również poszukuje wersji słoik json (połączyć wzdłuż mojego lib):

https://radheshg.wordpress.com/tag/json/

ale nie wydaje przenośny:

Building example 
C:\Program Files (x86)\Research In Motion\BlackBerry JDE 4.5.0\bin\rapc.exe -quiet import="C:\Program Files (x86)\Research In Motion\BlackBerry JDE 4.5.0\lib\net_rim_api.jar";lib\${PROJECT}.jar;lib\json.jar codename=example\example example\example.rapc warnkey=0x52424200;0x52525400;0x52435200 Y:\src\${PROJECT}-java.git\example\src\mypackage\MyApp.java Y:\src\${PROJECT}-java.git\example\src\mypackage\MyScreen.java 
tmp3139/org/json/me/JSONArray.class: Error!: Invalid class file: Incorrect classfile version 
Error while building project 

http://supportforums.blackberry.com/t5/Java-Development/JSON-library/m-p/573687#M117982

2

Do tej pory JSON.simple wygląda jak świetna realna opcja.

JSONParser parser=new JSONParser(); 

    System.out.println("=======decode======="); 

    String s="[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]"; 
    Object obj=parser.parse(s); 
    JSONArray array=(JSONArray)obj; 
    System.out.println("======the 2nd element of array======"); 
    System.out.println(array.get(1)); 
    System.out.println(); 
6

Pracuję nad aplikacją kliencką Blackberry i skonfrontowałem ten sam problem. Szukałem sposobu JSON analizowania odpowiedzi, którą otrzymuję z serwera. Używam wtyczki Eclipse dla BB jako IDE i jest dostarczana z BB SDK, w tym te dla JSON.

Najprostszą odpowiedzią na to pytanie jest to, że:

Początkowo nie zapomnij, aby korzystać z tej instrukcji import:

import org.json.me.JSONObject; 

Następnie przypisać JSON sformatowany odpowiedzi z serwera do zmiennej String:

String jsonStr = "{\"team\":\"Bursaspor\",\"manager\":\"Ertuğrul Sağlam\",\"year\":\"2010\"}"; 

Tworzenie JSONObject:

JSONObject obj = new JSONObject(jsonStr); 

czyli jeśli chcesz użyć wartości „zespół” dziedzinie, która jest „Bursaspor”, wtedy należy użyć JSONObject tak:

obj.getString("team") 

To wywołanie zwróci ciąg znaków, który jest „Bursaspor ".

P.S: Zainspirowałem to rozwiązanie z tej witryny, które wyjaśnia rozwiązanie tego samego problemu dla Androida.

http://trandroid.com/2010/05/17/android-ile-json-parse-etme-ornegi-1/