【问题标题】:How to parse Json data from URL?which contains number of arrays如何从 URL 解析 Json 数据?其中包含数组的数量
【发布时间】:2013-12-21 08:16:47
【问题描述】:

我在解析我关注 this 链接的 JSON 数据时遇到问题。

那里有解析数据图像描述..

我还在堆栈溢出中引用了一个遇到相同问题但没有正确答案的人.. How to Parse JSONarray inside JSONarray in android?How to display Image from URL?

我们可以说只是上述问题的延伸..

这不是重复的那个人也是同样的问题没有答案..

我有如下数据

{
"request": "ok",
"query": {
    "result": [
        {
            "site": [
                {
                    "latest": [
                        {
                            "id": "2eaQy8Ow",
                            "data": "1/1/2014"
                        }
                    ]
                }
            ],
            "flag": [
                "http://www.simplydecoded.com/wp-content/uploads/2013/02/Telangana2.jpg"
            ]
        }
    ]
   }
  }

我正在使用下面的代码进行解析

JSONArray json_query_flag = c.getJSONArray("flag");


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

if (j <json_query_site.length()) {

HashMap<String, String> map1 = new HashMap<String, String>();
JSONObject sd = json_query_site.getJSONObject(j);

// get latestoffers
JSONArray json_latest = sd.getJSONArray("latest");
System.out.println(json_latest.toString());

for (int k = 0; k < json_latest.length(); k++) {

HashMap<String, String> map2 = new HashMap<String, String>();
JSONObject e = json_latest.getJSONObject(k);

我的问题是我没有得到最新的和标志.. 可能是解析问题..

【问题讨论】:

标签: android json parsing


【解决方案1】:

您好,感谢您理解该问题,请关注this 帖子以获取您的网站和最新消息。

它解决了我正在获取文本.. 但图像问题我认为你有标志.. 为此,您需要更改 Listviewadapter.java 文件。这样图像就会出现

改成这样

String strflag = resultp.get(Mainactivity.IMAGES);
    if(strflag != null)
        imageLoader.DisplayImage(strflag, flag);
    else
        imageLoader.DisplayImage("http://www.butterentals.com/graphics/no_image.jpg", flag);

这样我就完成了。

【讨论】:

    【解决方案2】:

    试试这个..

    JSONObject JObj = new JSONObject(response);
    JSONObject query = JObj.getJSONObject("query");
    JSONArray result = query.getJSONArray("result");
    for (int i = 0; i < result.length(); i++) {
            JSONObject jobj = result.getJSONObject(i);
            JSONArray site = jobj.getJSONArray("site");
                for (int j = 0; j < site.length(); j++) {
                    JSONObject sitobj = site.getJSONObject(j);
                    JSONArray latest = sitobj.getJSONArray("latest");
                        for (int k = 0; k < latest.length(); k++) {
                             JSONObject lateobj = latest.getJSONObject(k);
                             System.out.println("id : "+lateobj.getString("id"));
                        }
                }
            JSONArray flag = jobj.getJSONArray("flag");
            for (int l = 0; l < flag.length(); l++) {
                System.out.println("urls : "+flag.getString(l));
            }
    }
    

    【讨论】:

    • @user3124880 你能把你的完整解析代码贴出来,缺少 C JSONObject
    • @user3124880 是的,我知道。对于您的 json 响应,我的回答是正确的。我可以知道你想要什么。
    • @user3124880 对不起朋友,我在办公室,我无法在这里打开我的邮件。您可以发布您的解析代码,我可以帮助您。
    • @user3124880 看看我的回答拿了那个代码并使用它。在 logcat 中检查 url 是否会打印。
    • @user3124880 in hashmap1 你需要存储哪些数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    相关资源
    最近更新 更多