java - 通过嵌套的 JSON 对象循环嵌套并将值保存在数组列表中

标签 java android json

我有一个 JSON 对象,如下所示

{"PAYLOAD":[{"pid":"4","title":"Kyamaiko Flats","long":"36.764880000","lat":"-1.342980800","volume":125,"value":"10000","active":"Y","contractor":"SS mehta and Sons","subContractor":"Kamau Njoro","cp":[{"contactPerson":"Njoroge","designation":"Architect"},{"contactPerson":"John","designation":"Quantity suveyor"}],"lastvisit":"2 months ago ","nextvisit":"10/12/2013 ""image_url":"http:\\www.someurl.net\images\avator.png"}]}

要获取值,我使用以下代码:

try{

                JSONArray  mot = json.getJSONArray("PAYLOAD");
                    for(int i=0;i<mot.length();i++){                        
                        HashMap<String, String> map = new HashMap<String, String>();        
                        JSONObject e = mot.getJSONObject(i);
                        map.put(KEY_NAME_ID, e.getString(KEY_NAME_ID));
                        map.put(KEY_NAME, e.getString(KEY_NAME));
                        map.put(KEY_LAT, e.getString(KEY_LAT));
                        map.put(KEY_LON, e.getString(KEY_LON));
                        map.put(KEY_VOLUME, e.getString(KEY_VOLUME));
                        map.put(KEY_VALUE, e.getString(KEY_VALUE));
                        map.put(KEY_ACCOUNT_STATUS, e.getString(KEY_ACCOUNT_STATUS));
                        map.put(KEY_CONTRACTOR, e.getString(KEY_CONTRACTOR));
                        map.put(KEY_SUB_CONTRACTOR, e.getString(KEY_SUB_CONTRACTOR));

                        JSONArray  cp = json.getJSONArray(KEY_CONTACT_PERSON);

                        for(int j=0;j<cp.length();j++)
                        {
                        HashMap<String, String> map_cp = new HashMap<String, String>();     
                        JSONObject f = cp.getJSONObject(j);
                        map_cp.put(KEY_CONTACT_PERSON_NAME, f.getString(KEY_CONTACT_PERSON_NAME));
                        map_cp.put(KEY_CONTACT_PERSON_DESIGNATION, f.getString(KEY_CONTACT_PERSON_DESIGNATION));
                         }
                        map.put(KEY_LAST_VISIT, e.getString(KEY_LAST_VISIT));
                        map.put(KEY_NEXT_VISIT, e.getString(KEY_NEXT_VISIT));
                        map.put(KEY_IMAGE_URL, e.getString(KEY_IMAGE_URL));
                        displaylist.add(map);
                    }       
              }catch(JSONException e)      {
                  Util.LogFailedVisits ("JSON Exception "+e.toString(),mDID);
              }

我想传递第二个 JSONObject 中的值并将它们添加到 HashMap 中,然后添加到 Arraylist 中,这样我就可以将它们传递到另一个 Fragment 中。这是最好的方法吗?或者我如何最好地将这个值传递给另一个 fragment ?

最佳答案

使用Fragment.setArguments()来传递Bundle实例。在 Bundle 中,您可以放置​​一个 Serialized 对象(例如,您的 HashMapCollection)

关于java - 通过嵌套的 JSON 对象循环嵌套并将值保存在数组列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19934020/

相关文章:

java - 单击按钮后 KeyListener 不起作用

两个字符串之间的Java正则表达式提取字符串

android - 在下面的类中实现带屏幕限制的 Imageview 旋转

php - 从 iOS 到 PHP 脚本的 JSON 数据

Java Jersey REST 请求参数清理

java - 用于 Spring MVC 3.0 的 JSON 客户端 API

java - 从哪里开始学习 Java EE 或用 Java 制作 Web 服务

java - 运行扩展 HTTPServlet 的简单类时出现 404 错误

java - 如何仅从 Javafx2 HTMLEditor 获取文本

java - 检查SQLite中的列是否为NULL