簡體   English   中英

Json數據解析並使用Codename 1顯示在List中

[英]Json data parsing and display in List using Codename one

在這里,我必須解析從Facebook獲取的JSON數據,並使用Codename 1在列表中顯示,以便如何使用Map轉換ArrayList。 這是我的Json數據

{
  "posts": {
    "data": [
      {
        "story": "Gaurav Takte shared a link.",
        "created_time": "2017-02-14T19:08:34+0000",
        "id": "1323317604429735_1307213186040177"
      },
      {
        "story": "Gaurav Takte shared a link.",
        "created_time": "2017-02-02T14:22:50+0000",
        "id": "1323317604429735_1295671703860992"
      },
      {
        "message": "Hurray....... INDIA WON KABBADI WORLD CUP 2016",
        "created_time": "2016-10-22T15:55:04+0000",
        "id": "1323317604429735_1182204335207730"
      },
      {
        "story": "Gaurav Takte updated his profile picture.",
        "created_time": "2016-10-21T05:35:21+0000",
        "id": "1323317604429735_1180682575359906"
      },
      {
        "message": "Friends like all of you … I would love to keep forever.
#oldmemories with # besties 
#happydays",
        "story": "Gaurav Takte with Avi Bhalerao and 5 others.",
        "created_time": "2016-10-21T05:33:55+0000",
        "id": "1323317604429735_1180682248693272"
      },
      {
        "message": "\"सर्वांना गणेशचतुर्थीच्या हार्दीक शुभेच्छा.
तुमच्या मनातील सर्व मनोकामना पूर्ण होवोत , सर्वांना
सुख, समृध्दी, ऎश्वर्य,शांती,आरोग्य लाभो हीच
बाप्पाच्या चरणी प्रार्थना. \"
गणपती बाप्पा मोरया , मंगलमुर्ती मोरया !!!",
        "story": "Gaurav Takte with Avi Bhalerao and 18 others.",
        "created_time": "2016-09-05T05:06:58+0000",
        "id": "1323317604429735_1133207030107461"
      }
    ]
}
}

因此,我該如何解析它並以列表方式在Codename one中顯示。

嘗試這個,

        JSONObject obj=new JSONObject(response);
        JSONObject posts_obj=obj.getJSONObject("posts");
        JSONArray  data_arr=posts_obj.getJSONArray("data");
        for(int i=0;i<data_arr.length();i++) {
            JSONObject data_obj=data_arr.getJSONObject(i);

            String story = data_obj.getString("story");
            String created_time = data_obj.getString("created_time");
            String id = data_obj.getString("id");
            if(data_obj.has("message")) {
                String message = data_obj.getString("message");
            }
        }

開發人員指南涵蓋的Codename One中檢查JSONParser類。

指南中的示例粘貼在下面,但我建議在此處閱讀,因為在此處有正確的注釋:

Form hi = new Form("JSON Parsing", new BoxLayout(BoxLayout.Y_AXIS));
JSONParser json = new JSONParser();
try(Reader r = new InputStreamReader(Display.getInstance().getResourceAsStream(getClass(), "/anapioficeandfire.json"), "UTF-8")) {
    Map<String, Object> data = json.parseJSON(r);
    java.util.List<Map<String, Object>> content = (java.util.List<Map<String, Object>>)data.get("root"); 
    for(Map<String, Object> obj : content) { 
        String url = (String)obj.get("url");
        String name = (String)obj.get("name");
        java.util.List<String> titles =  (java.util.List<String>)obj.get("titles"); 
        if(name == null || name.length() == 0) {
            java.util.List<String> aliases = (java.util.List<String>)obj.get("aliases");
            if(aliases != null && aliases.size() > 0) {
                name = aliases.get(0);
            }
        }
        MultiButton mb = new MultiButton(name);
        if(titles != null && titles.size() > 0) {
            mb.setTextLine2(titles.get(0));
        }
        mb.addActionListener((e) -> Display.getInstance().execute(url));
        hi.add(mb);
    }
} catch(IOException err) {
    Log.e(err);
}
hi.show();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM