怎样的JSONObject转换为JSonArray ......?
问题描述:
我有响应怎样的JSONObject转换为JSonArray ......?
{
"p1":{
"date":"Sat, 29 Jul 2017 03:31:43 GMT",
"plan_id":"5c4c6548-38cb-4dbb-b7a3-a3f260fb8532",
"plan_name":"Ultra50",
"pulse":1,
"tarrif":1,
"validity":30
},
"p2":{
"date":"Sat, 29 Jul 2017 03:31:43 GMT",
"plan_id":"5c4c6548-38cb-4dbb-b7a3-a3f260fb8532",
"plan_name":"Ultra50",
"pulse":1,
"tarrif":1,
"validity":30
}
}
这里我的代码
Response.Listener<JSONObject> responseListener = new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONObject plan=response.getJSONObject("p1");
Iterator x=plan.keys();
JSONArray jsonElements=new JSONArray();
while (x.hasNext()){
String key=(String) x.next();
jsonElements.put(plan.get(key));
Log.e(TAG, "onResponse: "+key);
}
Log.d(TAG, "onResponse: "+jsonElements.toString());
} catch (JSONException e) {
e.printStackTrace();
}
如何P1,P2,P3转换一个JsonArray?
答
您应该使用ITERATOR。
它用于逐个遍历集合对象元素。
Iterator iteratorObj = response.keys();
while (iteratorObj.hasNext())
{
String getKEY = (String)iteratorObj.next();
System.out.println("Key: " + Key + "------>" + getKEY); // p1,p2
}
答
- 转换对象为字符串
- 取代首先{到[和最后}来]
- 字符串转换为JSONArray
String res = response.toString().trim(); res = res.replaceFirst("\{","]"); res = res.substring(0,res.length()-1) + "]"; try { JSONArray arr = new JSONArray(res.toString()); }catch (JSONException j) { }
+0
我知道,但我不能改变response.please给我一个解决方案在Android代码... –
答
Iterator planKeys = response.keys();
{
JSONArray jsonElements=new JSONArray();
while(planKeys.hasNext()){
String key = (String) planKeys.next();
JSONObject plan = response.getJSONObject(key);
Iterator x=plan.keys();
while (x.hasNext()){
String key=(String) x.next();
jsonElements.put(plan.get(key));
Log.e(TAG, "onResponse: "+key);
}
}
}
JSONObject plan=response.getJSONObject("p1");
您的问题不清楚。 –
我想在此列表视图JSON响应......这可能吗? @IntelliJAmiya –
是的。为什么不.. –