Как разобрать ответ JSON в Blackberry/J2ME?
Я хочу проанализировать ответ от сервера в формате JSON. Я немного погуглил, но не могу найти какую-нибудь библиотеку или банку.
Везде предоставляется открытый исходный код в виде zip-файла.
Как я могу достичь этого? Если для Blackberry нет JAR, то как использовать этот открытый исходный код в моем приложении?
6 ответов
Существует проект JSON с открытым исходным кодом для API J2ME в проекте разработчиков мобильных и встраиваемых приложений.
Также вы можете скачать JSON ME (Zip-файл) на JSON.org, который больше не поддерживается. Но вы можете получить это отсюда.
Я полагаю, что вы можете просто скопировать содержимое папки src проекта json в папку src вашего проекта Blackberry, обновить ее в обозревателе пакетов eclipse и собрать ее.
Подробности смотрите: Использование JavaScript Object Notation (JSON) в Java ME для обмена данными
Я разрабатываю клиентское приложение Blackberry и столкнулся с той же проблемой. Я искал JSON способ парсинга ответа, который я получаю с сервера. Я использую плагин Eclipse для BB в качестве IDE, и он поставляется с BB SDK, в том числе для JSON.
Самый простой ответ на этот вопрос заключается в следующем:
Изначально не забудьте использовать этот оператор импорта:
import org.json.me.JSONObject;
Затем присвойте ответ в формате JSON с сервера переменной String:
String jsonStr = "{\"team\":\"Bursaspor\",\"manager\":\"Ertuğrul Sağlam\",\"year\":\"2010\"}";
Создайте JSONObject:
JSONObject obj = new JSONObject(jsonStr);
т.е. если вы хотите использовать значение поля "team", которое "Bursaspor", тогда вы должны использовать ваш JSONObject следующим образом:
obj.getString("team")
Этот вызов вернет строковое значение "Бурсаспор".
PS: я вдохновил это решение с этого сайта, который просто объясняет решение той же проблемы для разработки Android.
http://trandroid.com/2010/05/17/android-ile-json-parse-etme-ornegi-1/
Когда вы получили строку ответа, используйте этот код
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);
}
jsons - это ваша строка ответа в формате json, а mydata - ваш ключ данных, чтобы вы могли получать данные из JSONObject. Thnks
Проверьте этот пост, чтобы узнать, как получить исходный код JSONME из SVN:
http://www.java-n-me.com/2010/11/how-to-import-source-code-from-svn-to.html
Надеюсь, это поможет кому-то.
Пока что JSON.simple выглядит как отличный жизнеспособный вариант.
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();
Вы также можете попробовать:
http://pensivemode.fileave.com/verified_json.jar
Я также искал jar-версию json (для ссылки на мою библиотеку):
https://radheshg.wordpress.com/tag/json/
но кажется не переносимым
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