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