从JSONObject

时间:2015-05-19 09:06:04

标签: java jsonobject

如何从Object[][]获取JSONObject?这是我用来完成这项任务的代码:

Object[][] object2dArray= {{"String"},{315296487},{142736598.342},{"text"}};
JSONObject json = new JSONObject();
json.put("String", "text");
json.put("int", 1234);
json.put("double", 123.0);
json.put("object2dArray", object2dArray);

System.out.println("json.get(\"String\") == "+json.get("String"));
outprint ==   json.get("String") == text

System.out.println("json.get(\"int\") == "+json.get("int"));
outprint ==   json.get("int") == 1234

System.out.println("json.get(\"double\") == "+json.get("double"));
outprint ==   json.get("double") == 123.0

System.out.println("json.get(\"object2dArray\") == "+json.get("object2dArray"));
outprint ==   json.get("object2dArray") == [[Ljava.lang.Object;@12a3a380    

如何编写代码以实际从JSONObject获取多维对象数组?

2 个答案:

答案 0 :(得分:0)

输出

  

[[Ljava.lang.Object; @ 12a3a380

实际上是数组 object2dArray toString()表示。您可以通过以下方式对其进行验证:

System.out.println(object2dArray.toString());


据我所知,没有内置的java方法来打印它,如下所示(不幸的是,你必须编写代码才能做到这一点)

{{"String"},{315296487},{142736598.342},{"text"}};


样本打印:
如果你想打印它,你必须首先投射返回的对象:

Object[][] newRef = (Object[][]) js.get("object2dArray"));

然后遍历对象数组并打印它。

for(Object[] arr : newRef) {
    for (Object item : arr) {
        System.out.println(item);
    }
}

答案 1 :(得分:0)

要将JSON对象检索为2D数组,只需将其转换为:

Object[][] newRef = (Object[][])json.get( "object2dArray" );

Apache Commons拥有ReflectionToStringBuilder,这对于toString()非任务对象({1}}非常方便,例如:

Object.toString()

干杯,