繁体   English   中英

如何将JSONArray转换为JSONObject?

[英]How can I turn a JSONArray into a 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<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();
}

我有这样的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<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()));


 }
}

您最初是否可以将数据作为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对象。

暂无
暂无

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

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