如何从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获取多维对象数组?
答案 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()
干杯,