如何将JSONArray转换为JSONObject?

基本上我有:

JSONArray j = new JSONArray(); j.add(new JSONObject()); //JSONObject has a bunch of data in it j.add(new JSONArray()); //JSONArray has a bunch of data in it 

现在我想将JSONArray转换为具有相同信息的JSONObject 。 这样我就可以传递Object然后当我想要时我可以从对象中获取所有信息。 任何帮助将不胜感激,谢谢。

通常,Json对象将包含您的值(包括数组)作为其中的命名字段。 所以,像:

 JSONObject jo = new JSONObject(); JSONArray ja = new JSONArray(); // populate the array jo.put("arrayName",ja); 

在JSON中将是{“arrayName”:[…]}。

码:

 List list = new ArrayList(); list.add("a"); JSONArray array = new JSONArray(); for (int i = 0; i < list.size(); i++) { array.put(list.get(i)); } JSONObject obj = new JSONObject(); try { obj.put("result", array); } catch (JSONException e) { e.printStackTrace(); } 

您最初是否可以将数据作为JSONObject获取?

也许首先将字符串解析为JSONObject和JSONArray? JSON字符串来自哪里?

我不确定是否可以将JsonArray转换为JsonObject。

我认为您正在使用json.org中的以下内容

  • JSONObject.java
    JSONObject是名称/值对的无序集合。 它的外部forms是一个用大括号括起来的字符串,名称和值之间有冒号,值和名称之间有逗号。 内部表单是一个对象,具有用于按名称访问值的get()和opt()方法,以及用于按名称添加或替换值的put()方法。 值可以是以下任何类型:Boolean,JSONArray,JSONObject,Number和String,或JSONObject.NULL对象。

  • JSONArray.java
    JSONArray是一个有序的值序列。 它的外部forms是一个用方括号括起来的字符串,在值之间用逗号表示。 内部表单是一个对象,具有通过索引访问值的get()和opt()方法,以及用于添加或替换值的put()方法。 值可以是以下任何类型:Boolean,JSONArray,JSONObject,Number和String,或JSONObject.NULL对象。

我有这样的JSONObject: {"status":[{"Response":"success"}]}

如果我想在不使用任何静态值的情况下自动将JSONArray值(JSONArray)转换为JSONObject,则可以使用以下代码。

 JSONArray array=new JSONArray(); JSONObject obj2=new JSONObject(); obj2.put("Response", "success"); array.put(obj2); JSONObject obj=new JSONObject(); obj.put("status",array); 

将JSONArray转换为JSON对象:

 Iterator it=obj.keys(); while(it.hasNext()){ String keys=it.next(); JSONObject innerJson=new JSONObject(obj.toString()); JSONArray innerArray=innerJson.getJSONArray(keys); for(int i=0;i InnerIterator=innInnerObj.keys(); while(InnerIterator.hasNext()){ System.out.println("InnInnerObject value is :"+innInnerObj.get(InnerIterator.next())); } }