如何从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 中解析 JSON 数组(不是 Json 对象)
当JSON对象URL字段在android studio中包含多个URL时,如何存储来自JSON对象请求的URL?