如何解析Blackberry / J2ME中的JSON响应?

时间:2009-09-24 08:25:55

标签: json blackberry java-me

我想以JSON格式解析来自服务器的响应。我做了一些谷歌搜索,但我找不到任何库或罐子的东西。

到处都提供了开源代码作为zip文件。

我怎样才能做到这一点?如果没有可用于黑莓的jar,那么如何在我的应用程序中使用该开源代码?

6 个答案:

答案 0 :(得分:9)

有一个open source JSON for J2ME API on Mobile and Embedded Application Developers Project

此外,您不再支持download JSON ME (Zip file) at JSON.org 。但你可以从here获得它。

我相信你可以简单地将json project src文件夹的内容复制到你的Blackberry项目src文件夹中,在eclipse包explorer中刷新它并构建它。

详见:Using JavaScript Object Notation (JSON) in Java ME for Data Interchange

答案 1 :(得分:6)

我正在开发一个Blackberry客户端应用程序,我遇到了同样的问题。我正在寻找解析我从服务器获得的响应的JSON方式。我使用Eclipse插件作为IDE的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);

即。如果你想使用“团队”字段的值是“Bursaspor”,那么你应该像这样使用你的JSONObject:

    obj.getString("team")

此调用将返回字符串值“Bursaspor”。

P.S:我从这个网站启发了这个解决方案,它简单地解释了Android开发中同样问题的解决方案。

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

答案 2 :(得分:3)

获得响应字符串后,请使用此代码

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

答案 3 :(得分:2)

请阅读这篇文章,了解如何从SVN获取JSONME源代码:

http://www.java-n-me.com/2010/11/how-to-import-source-code-from-svn-to.html

希望它有所帮助。

答案 4 :(得分:2)

您也可以尝试:

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

我也在寻找json的jar版本(沿着我的lib链接):

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#M117982

答案 5 :(得分:2)

到目前为止,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();