2015-05-23 51 views
5

我需要获取JsonArray的关键名称,所以JSON看起来像这样,请不要,JSON以数组括号开头,并且里面有对象,我猜是因为后端会有能力添加对象。获取jsonarray键名

[ 
    { 
    "tehnology": [ ] 
    }, 
    { 
    "science": [] 
    } 
] 

,所以我需要从它的“技术”和“科学”得到的名字,因为JSON可以动态改变,我怎么能实现呢?

+0

定义的键请把正确的JSON字符串你的JSON字符串是不妥当的第一个括号不能是方括号。在线检查json解析网站 – Pankaj

+0

@Clairvoyant第一个括号可以是数组括号,jsonlint.com说我的JSON是有效的。 –

+0

我想你应该检查[this](http://stackoverflow.com/questions/20321212/get-json-array-keys-in-android) – Kunu

回答

6

JSONArray包含JSONObject s。检索每个JSONObject和使用keys()访问每个JSONObject

JSONArray jArray = new JSONArray(response);  
for (int i = 0; i < jArray.length(); i++) { 
     JSONObject object = jArray.optJSONObject(i); 
     Iterator<String> iterator = object.keys(); 
     while(iterator.hasNext()) { 
     String currentKey = iterator.next(); 
     } 
} 
+0

Niiii​​ice!你救了我的一天,thx队友:D –

+0

不用客气 – Blackbelt

+0

如何用GSON做到这一点? –