Чисто в качестве академического упражнения я хотел преобразовать один из моих существующих апплетов GAE, чтобы вернуть ответ обратно в Android в JSON и соответствующим образом проанализировать его.
Исходный ответ XML, содержащий серию логических значений, был возвращен таким образом:
StringBuilder response = new StringBuilder();
response.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
response.append("<friend-response><added>");
response.append(friendAdded);
response.append("</added><removed>");
response.append(friendRemoved);
response.append("</removed><found>");
response.append(friendFound);
response.append("</found></friend-response>");
Я хочу заменить это JSON-ответом, который выглядит примерно так:
{ "friendResponse" : [ { "added":true, "removed":false, "found":true } ]}
Я думаю, что могу сгенерировать содержимое массива следующим образом (я не проверялпока нет) но я не знаю, как создать массив самого верхнего уровня friendResponse.Кажется, я не могу найти хороших примеров создания ответов JSON в Java с помощью библиотеки com.google.appengine.repackaged.org.json.Кто-нибудь может помочь поставить меня на правильный путь?
boolean friendAdded, friendRemoved, friendFound;
/* Omitted the code that sets the above for clarity */
HttpServletResponse resp;
resp.setContentType("application/json");
resp.setHeader("Cache-Control", "no-cache");
JSONObject json = new JSONObject();
try {
//How do I create this as part of a friendResponse array?
json.put("added", friendAdded);
json.put("removed", friendRemoved);
json.put("found", friendFound);
json.write(resp.getWriter());
} catch (JSONException e) {
System.err
.println("Failed to create JSON response: " + e.getMessage());
}