2015-04-23 57 views
0

我有以下的JSON响应当钥匙数量是不确定的

{ 
    "time": { 
     "1427817600000": 90, 
     "1427904000000": 134, 
     "1427990400000": 155, 
     "1428076800000": 167 
    } 
} 

而在“时间”的项目数的Android GSON Json的解析是不确定的。

例如,

当时 “1427817600000”,则计数为90

当时 “14279.04亿” 计数为134 ... ...

如何我可以解析这在Android(Java)

谢谢。

+0

我认为你可以使用JsonArray http://google-gson.googlecode.com/svn/trunk/gson/ docs/javadocs/index.html – fdsa

+0

但它似乎是JSONObject的“时间” –

+1

这取决于密钥是否已知。从你发布的内容看,关键是随机时间值。虽然你可能能够通过键/值对列表来执行任何你想做的事情,但在这里使用Gson是不可能的,因为Gson在编译时需要知道键名。 – tambykojak

回答

1

您可以通过使用org.json

例如迭代"time" JSON的每个关键

String data = "{\"time\": {\"1427817600000\": 90,\"1427904000000\": 134,\"1427990400000\": 155,\"1428076800000\": 167}}"; 

JSONObject json=new JSONObject(data); 
JSONObject timeJSON=json.getJSONObject("time"); 

Iterator<String> keys=timeJSON.keys(); 
while (keys.hasNext()){ 
System.out.println(timeJSON.get(keys.next())); 
} 
+0

谢谢。这是答案。 –

0

您可以通过调用JSONObject的keys()方法遍历这些键。

0

存放在变量您JSON字符串说​​

代码:

JSONObject jsonObj = new JSONObject(resultStr); 

JSONObject timeObject = jsonObj.getJSONObject("time"); 

int count1 = timeObject.getString("1427817600000"); 

int count2 = timeObject.getString("1427904000000"); 

int count3 = timeObject.getString("1427990400000"); 

int count4 = timeObject.getString("1428076800000");