2016-08-04 85 views
2

你好,我需要你的帮助,从json对象读取随机名为数组。如何从json对象获取json数组?

在此任务中,客户端根据自己的要求创建json对象。

{ 
    "tags":[ "demo 1","demo 2","demo 3","demo 4","demo 5","N" ] 
} 

我使用“N”用于定义在一个阵列中的项目的数量没有限制。

Here in this code用户使用标签将json数组放入json对象中的键。

用户还可以强调文本阵列客户

{ 
     "Clients":[ "demo 1","demo 2","demo 3","demo 4","demo 5","N" ] 
    } 

我知道如何解析

JSONArray jsonMainArr = new JSONArray(String.valueOf(ObjectName.getJSONArray("Keyname"))); 

我现在的问题是如何获得JSON数组,如果我们不知道KeyName like 标签客户

+0

尝试@人士Himanshu的答案。这对你有帮助。 – pRaNaY

回答

2

你可以做这样的事情:

JSONObject mainJsonObject = new JSONObject(jsonString); 
Iterator<?> keys = mainJsonObject.keys(); 
if (keys.hasNext()){ 
    String key = (String) keys.next(); 
    JSONArray jsonMainArr = mainJsonObject.getJSONArray(key); 
} 

在上面的代码我正在从原来的jsonString主要JsonObject和使用迭代获取对象中的第一个关键,并用它来获取JsonArray

试试这个解决方案,让我知道你是否有任何问题实现相同。

+0

thnx bro它的工作 – sunny

+0

太棒了,祝你有美好的一天! – himanshu1496

1

尝试这个代码,而无需钥匙或标签..

try { 

    JSONArray itemArray=new JSONArray(jsonString); 
    for (int i = 0; i < itemArray.length(); i++) { 
     String value = itemArray.getString(i); 
     Log.e("json", value); 
    } 
} catch (JSONException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+0

thnkx求助:) – sunny