Bha*_*iya 17 arrays android json iterator arraylist
我想动态地解析我的Json数组.并希望获得jsonarray下每个元素的KEYS数组.我通过迭代器得到这个.但没有按照输出json formate获得序列.
我的JSON Formate:
{
"result": "Success",
"AlertDetails": [
{
"ShipmentNumber": "SHP34",
"Customer": "BEST",
"DateCreated": "2012-08-29T04:59:18Z"
"CustomerName": "BEST"
},
{
"ShipmentNumber": "SHP22",
"Customer": "BEST",
"DateCreated": "2012-08-29T05:34:18Z"
"CustomerName": "Jelly"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
JSONArray array = jsonobject.getJSONArray("AlertDetails");
JSONObject keyarray = array.getJSONObject(0);
Iterator temp = keyarray.keys();
while (temp.hasNext()) {
String curentkey = (String) temp.next();
KEYS.add(curentkey);
}
Log.d("Parsing Json class", " ---- KEYS---- " + KEYS);
Run Code Online (Sandbox Code Playgroud)
我在logcate输出中获得的内容:
---- KEYS---- [DateCreated,CustomerName, Customer, ShipmentNumber]
Run Code Online (Sandbox Code Playgroud)
我想要的是 :
---- KEYS---- [ShipmentNumber, Customer, DateCreated,CustomerName]
Run Code Online (Sandbox Code Playgroud)
Aru*_*rge 12
JSONObject文档(链接:http://developer.android.com/reference/org/json/JSONObject.html)对该keys()
函数有以下描述:
公共迭代器键()
自:API级别1
返回此对象中String名称的迭代器.返回的迭代器支持remove,这将从该对象中删除相应的映射.如果在返回迭代器后修改此对象,则迭代器的行为是未定义的.键的顺序是未定义的.
所以你可能得到了钥匙,但订单未定义.如果您想要任何特定顺序的密钥,您可以使用任何排序算法.
编辑
由于您不知道从WS获得的KEYS的顺序,在收到数据后,您可以在屏幕上以有序格式显示详细信息.构建之后arraylist
KEYS
,您可以使用以下内容按字母顺序对其进行排序:
Collections.sort(KEYS);
Run Code Online (Sandbox Code Playgroud)
这将命令Strings
在KEYS
arraylist
根据其自然顺序(这是按字母顺序).