到目前为止,您需要将其转换为String
采用某种标准格式,然后可以使用现有库对其进行解析和构建。例如,JSON、XML 或 CSV,所有这些都是标准化且可交换的字符串格式,许多编程语言中都存在大量解析/构建库。
Android 有一个内置的 JSON 解析器the org.json package http://developer.android.com/reference/org/json/package-summary.html。它甚至有一个内置的 XML 解析器the org.xml.sax package http://developer.android.com/reference/org/xml/sax/package-summary.html。我不确定是否有内置 CSV 库,但似乎没有。 Java EE 有以下特点JAXB http://jaxb.java.net/tutorial/一个很棒的内置 XML 解析器,但它没有内置 JSON 解析器。只有 JAX-RS 实现(Jersey、RESTeasy 等)提供 JSON 解析器。如果您可以将 servlet 更改为 JAX-RS Web 服务,那么您将受益于能够以最少的努力返回 XML 和 JSON。也可以看看Servlet 与 RESTful https://stackoverflow.com/questions/7874695/servlet-vs-restful.
选择哪种格式取决于唯一的功能需求。例如,servlet 是否应该重用于其他服务?目标客户是什么?等等。
无论如何,JSON 格式通常比 XML 更简洁,而且最近更流行,因此我将仅给出一个以 JSON 格式传输数据的启动示例,并且我假设您确实想使用简单的格式来完成此操作vanilla servlet 而不是 JAX-RS。对于此示例,您只需下载并删除一个 JSON 库,例如Gson http://code.google.com/p/google-gson/ in /WEB-INF/lib
为了在 servlet 中将 Java 对象转换为 JSON。
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<String> list = new ArrayList<String>();
list.add("item1");
list.add("item2");
list.add("item3");
String json = new Gson().toJson(list);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
}
这将构建并返回List
采用以下 JSON 格式:
["item1","item2","item3"]
这又可以通过以下方式解析org.json
Android中的API如下:
String jsonString = getServletResponseAsStringSomehow(); // HttpClient?
JSONArray jsonArray = new JSONArray(jsonString);
List<String> list = new ArrayList<String>();
for (int i = 0; i < jsonArray.length(); i++) {
list.add(jsonArray.getString(i));
}
// Now you can use `list`.