简体   繁体   English

如何将JSONobject转换为JSonArray…?

[英]how to convert JSONobject to JSonArray…?

I have Response 我有回应

{

"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
}
}

Here my Code 这是我的代码

 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();
            }

how to convert p1,p2,p3 in one JsonArray? 如何在一个JsonArray中转换p1,p2,p3?

You should use ITERATOR . 您应该使用ITERATOR

It is used to traverse a collection object elements one by one . 它用于遍历一个集合对象元素。

 Iterator  iteratorObj = response.keys();
        while (iteratorObj.hasNext())
        {
            String getKEY = (String)iteratorObj.next();
            System.out.println("Key: " + Key + "------>" + getKEY); // p1,p2
        }
  1. convert object to string 将对象转换为字符串
  2. replace First { to [ and last } to ] 将First {替换为[,last}替换为]
  3. convert string to JSONArray 将字符串转换为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) { } 
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");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM