Как разобрать ответ 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

Другие вопросы по тегам