Как написать многомерный объект JSON в JSP и передать объект JSON обратно в JavaScript? - PullRequest
0 голосов
/ 11 мая 2011

В настоящее время я пытаюсь написать многомерный объект или массив в JSP, а затем передать его обратно вызову AJAX из JavaScript. Теперь, расшифровав объект JSON с помощью AJAX, я понял (jQuery JSON). Итак, у меня все хорошо.

Но я теряюсь при создании многомерного объекта или массива JSON в JSP.

Я искал json-simple для плагина JSON для JSP (http://code.google.com/p/json-simple/). И это не просто этот плагин, но я не смог найти каких-либо примеров многомерных объектов JSON или примеров массивов в JSP.

Например, я получил этот пример, но он одномерный:

//import org.json.simple.JSONObject;

JSONObject obj=new JSONObject();
obj.put("name","foo");
obj.put("num",new Integer(100));
obj.put("balance",new Double(1000.21));
obj.put("is_vip",new Boolean(true));
obj.put("nickname",null);
System.out.print(obj);

Я бы хотел, чтобы у объекта JSON был такой результат:

{
  "results": [ {
    "address_components": [ {
      "long_name": "1600",
      "short_name": "1600",
      "types": [ "street_number" ]
    } ],
  } ]
}

Затем я передаю его обратно в JavaScript и декодирую.

Подводя итог: Как я могу создать многомерный объект или массив в JSP? Плагин JSON несущественен; что бы ни работало, я буду более чем счастлив.

Буду признателен за любую помощь. Заранее спасибо.

1 Ответ

1 голос
/ 11 мая 2011

Чтобы создать подобную структуру, используйте Gson :

{
  "results": [ {
    "address_components": [ {
      "long_name": "1600",
      "short_name": "1600",
      "types": [ "street_number" ]
    } ],
  } ]
}

Вы могли бы сделать что-то вроде этого:

<%
String[] types = {"street_number"};
Hashtable address_components = new Hashtable();
address_components.put("long_name", 1600);
address_components.put("short_name", 1600);
address_components.put("types", types);
Hashtable results = new Hashtable();
results.put("address_components", address_components);

// Make sure you have the Gson JAR in your classpath
// (place it in the tomcat/classes directory)
com.google.gson.Gson gson = new com.google.gson.Gson();
String json = gson.toJson(obj);  
out.print(json);
%>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...