如何从android中的url解析多个JSON对象和数组?我正在使用一个示例,我希望在该示例中使用它,

Posted

技术标签:

【中文标题】如何从android中的url解析多个JSON对象和数组?我正在使用一个示例,我希望在该示例中使用它,【英文标题】:How to parse Multiple JSON Objects and arrays from a url in android? i am using a example i want it in that example, 【发布时间】:2013-12-11 07:46:49 【问题描述】:

我希望在服务器端不进行编辑的情况下进行以下进程

我关注this例子

但在那边,他正在使用来自 url 的一个 json 对象调用数据

称为“世界人口”,..

但我有一个 Json 数据,其中包含很多 Json 对象和数组,.. 如下代码

 "getting data":"ok"
   "Todays":population
   "results"[
   "worldpopulation": 
[
     
     "rank":1,"country":"China",
     "population":"1,354,040,000",
     "flag":["http://www.androidbegin.com/tutorial/flag/china.png"]
     , 

    "population":
     [
    "countrypulation"        
     "rank":2,"country":"India",
     "population":"1,210,193,422",
     "flag":["http://www.androidbegin.com/tutorial/flag/india.png"]
     , 

就像我有很多数据一样,我想要在上面的示例中使用这些数据。无需更改服务器端的任何内容,.. 或 Restful 服务,.. 谢谢

【问题讨论】:

参考***.com/questions/20492940/… 你好 ravneet 先生,昨天它对我不起作用,...请按照上面的示例执行此操作并给我发邮件,...请先生... 【参考方案1】:

回复

JSONObject JObject = new JSONObject(response);
      String getting_data = JObject.getstring("getting data");
    String Todays= JObject.getstring("Todays");
    JsonArray results =JObject.getjsonarray("results");
    for(int i = 0 ; i < results.length(); i++)
     JsonObject resultsobject =results.getjsonobject(i);

    JsonArray worldpopulation 
=resultsobject.getjsonarray("worldpopulation");
         for(int j = 0 ; j < worldpopulation.length(); j++)
     JsonObject worldpopulationobject =worldpopulation.getjsonobject(j);
     JsonObject emptyobject =worldpopulationobject.getjsonobject("");
         String rank=emptyobject .getstring("rank"); 
        String population=emptyobject .getstring("population"); 
        JsonArray flagarray =countrypulation.getjsonarray(flag);
        for(int n = 0 ; n < flagarray.length(); n++)
        JsonObject flagarrayobject =flag1array.getjsonobject(n);
        String flag=flag1arrayobject .getstring("flag"); 
        

     JsonObject populationobject 
=worldpopulationobject.getjsonobject("population");
         JsonArray emptyarray =JObject.getjsonarray("");
    for(int k = 0 ; k < emptyarray.length(); k++)
        JsonObject emptyarrayobject =emptyarray.getjsonobject(k);
        JsonObject 
countrypulation=emptyarrayobject.getjsonobject("countrypulation");

         String rank1=countrypulation .getstring("rank"); 
        String country=countrypulation .getstring("country"); 
        String population1=countrypulation .getstring("population");
        JsonArray flag1array =countrypulation.getjsonarray(flag);
        for(int m = 0 ; m < flag1array.length(); m++)
        JsonObject flag1arrayobject =flag1array.getjsonobject(m);
        String flag1=flag1arrayobject .getstring("flag"); 
        
    
    
    

【讨论】:

你好,先生,我没有像在我的服务器中那样使用它... JSONObject JObject = new JSONObject(response); @user2967727 好吧,这里的响应是一个字符串,所有来自服务器的响应都放在其中。他假设您在名为“response”的字符串中拥有所有响应,然后他对其进行解析。 是的,我就是这样做的。【参考方案2】:

你解析


    ...

作为 JSONObject 和

[
    ...
]

作为 JSONArray。 JSONArray 包含您的对象。您可以从 JSONObject 检索属性值。

JSONArray response = new JSONArray('your json string');

for (int i = 0; i < response.length(); i++) 
    response.getJSONObject(i).getString("property"));

顺便说一句,如果您关闭缺少的括号,您的 json 是无效的。在这里查看http://jsonlint.com/

【讨论】:

以上是关于如何从android中的url解析多个JSON对象和数组?我正在使用一个示例,我希望在该示例中使用它,的主要内容,如果未能解决你的问题,请参考以下文章

如何从android中的url获取json对象

如何在 Android 中解析 JSON 数组(不是 Json 对象)

Android studio解析json对象

当JSON对象URL字段在android studio中包含多个URL时,如何存储来自JSON对象请求的URL?

从 Android 上的 URL 简单解析 JSON 并显示在列表视图中

如何使用json解析android在listview中获取图像