如何动态地解析表格布局中的JSON数据?在Android中从URL

时间:2014-01-02 07:26:35

标签: android json parsing listview

我正在从URL解析一个JSON数据。 我按照this教程来解析动态JSON数据

现在正在解析数据。 在List视图中..当我点击该列表视图时,将出现一个New Item视图,我想添加一些形成JSON数据的内容..但它查看最后一个数据所以我用一个解析它字符串格式,但我在字符串中获取数据,但我希望表中的数据..

这是我的JSON数据{ "request": "ok", "query": { "result": [ { "details": [ { "offers": [ { "id": "UUkY8", "model": "XL" }, { "id": "UUkY8", "model": "XXL" } ], "count": 2, "url": "http://www.wallmart.com" }, { "offers": [ { "id": "NNkz4", "model": "XL" }, { "id": "NNkz4", "model": "XXL" } ], "count": 2, "url": "http://www.amazon.com" } ], "flag": [ "http://www.donkersct.nl/wordpress/wp-content/uploads/2012/07/stackoverflow.png" ] } ] } }

我以这种方式解析

JSONArray json_results_details =c.getJSONArray("details");
                      System.out.println("looping json_results_details");
                      String strOffermodel="";
                        for (int j = 0; j < c.length(); j++) {
                            System.out.println("looping json_results_details[" + j +"]" + "json_results_details.length() -->" + json_results_details.length());

                            if (j < json_results_details.length()) {

                                JSONObject d = json_results_details.getJSONObject(j);
                                stridsName += d.optString("name")+",";
                                stridsURLs += d.optString("url")+",";

                                // Get site details

                                long lOffer_Counts =-1;
                                try {
                                    lOffer_Counts= Long.parseLong(d.optString("offers_count"));

                                } catch(Exception e) {
                                    lOffer_Counts =-1;
                                }                               
                                strOffersCount+= String.valueOf(lOffer_Counts) + ",";

                                if(lOffer_Counts > 0) {

                                    JSONArray json_offers = d.getJSONArray("offers");
                                    System.out.println(json_offers.toString());
                                    String strmodel="";
                                    for (int k = 0; k < json_offers.length(); k++) {


                                         JSONObject e = json_offers.getJSONObject(k);

                                          map.put("id", e.optString("id"));
                                          map.put("model", e.optString("model"));
                                          strmodel += e.optString("model") + "$";
                                      }  
                                    strOffermodel += strmodel + ",";
                                }
                                else
                                {
                                    strOffermodel += ",";
                                }

                                map.put("id", stridsName);
                                map.put("model", strOffermodel);
                               }
                         }
                        arraylist.add(map);

所以我没有得到模型循环。

Model:XL,XXL/XL,XXL...

我尝试使用列表视图但现在失败我正在尝试使用表格视图.. 但我希望输出应该是

enter image description here

这里只显示一个ID我想要所有ID和所有模型作为竞争对手.. 请帮我看看我在listviw中使用了一个表,我在Listview中尝试了Listview ..但是没有工作..

我尝试增加数据意味着ID /模型与for循环为i + 1但是它递增了值 意味着我被期待为

    map.put("id", strOfferid);
    map.put("id1", strOfferid1);
    map.put("id2", strOfferid2);
    map.put("id3", strOfferid3);

但我正在增加像

这样的值
Model:XL1,XXL1/XL2,XXL2/XL3,XXL3

所以请任何人帮忙。

1 个答案:

答案 0 :(得分:0)

使用而不是

JSONObject d = json_results_details.getJSONObject(j);

JSONObject d = new JSONbject(json_results_details.getJSONObject(j));