2015-05-19 2 views
1

Как я могу получить Object[][] от JSONObject? Это код, я использую для выполнения этой задачи:Литой многомерный массив от 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

Если I J ust print json.toString(); то он корректно показывает все данные, даже многомерную матрицу, вот пример этого json.toString() == {"double": 123, "object2dArray": [["String"], [315296487] , [38.342], ["text"]], "String": "text", "int": 1234} Мне просто интересно узнать, возможно ли получить сверхбыстрый массив или если только json может принимать примитивные типы данных , Спасибо! Приветствия! – user3560377

ответ

0

Выход

[[Ljava.lang.Object; @ 12a3a380

фактически ToString() представление массива object2dArray. Вы можете проверить это следующим:

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); 
    } 
} 
0

Чтобы получить объект JSON как 2D массив, просто бросьте:

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

Apache Commons имеет ReflectionToStringBuilder что очень удобно для toString() «ИНГ произвольных объектов, которые не отменяют Object.toString(), например .:

ReflectionToStringBuilder.toString(object2dArray); 

Cheers,

Смежные вопросы