如何将JSONArray转换为JSONObject?

时间:2011-08-25 16:04:27

标签: java arrays json object

基本上我有:

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然后当我想要时我可以从对象中获取所有信息。任何帮助将不胜感激,谢谢。

4 个答案:

答案 0 :(得分:19)

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

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

JSON中的哪个是{“arrayName”:[...]}。

答案 1 :(得分:2)

代码:

List<String> list = new ArrayList<String>();

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

答案 2 :(得分:2)

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

如果我想在不使用任何静态值的情况下自动将JSONArray的JSONA值转换为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<String> 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<innerArray.length();i++){
JSONObject innInnerObj=innerArray.getJSONObject(i);
Iterator<String> InnerIterator=innInnerObj.keys();
while(InnerIterator.hasNext()){
System.out.println("InnInnerObject value is :"+innInnerObj.get(InnerIterator.next()));


 }
}

答案 3 :(得分:1)

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

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

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

我认为您使用的是json.org

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

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