如何从JSONObject
获取Object[][]
?这是我用来完成这个任务的代码:
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中获取多维对象数组呢?
发布于 2015-05-19 09:32:05
输出
[[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);
}
}
发布于 2015-05-19 09:47:20
要将JSON对象作为2D数组检索,只需对其进行强制转换:
Object[][] newRef = (Object[][])json.get( "object2dArray" );
Apache Commons有ReflectionToStringBuilder,对于不覆盖Object.toString()
的任意对象的toString()
非常方便,例如:
ReflectionToStringBuilder.toString( object2dArray );
干杯,
https://stackoverflow.com/questions/30321211
复制相似问题