到目前为止,您需要将其转换为String某种标准格式,然后可以使用现有库对其进行分析和构建.例如,JSON,XML或CSV,它们都是标准化和可交换的字符串格式,许多编程语言中存在许多解析/构建库.
Android有一个内置JSON解析器的org.json包.它甚至在内置XML解析器的org.xml.sax包.我不确定是否有内置的CSV库,但似乎没有.Java EE在JAXB中具有很好的内置XML解析器,但它没有内置的JSON解析器.只有JAX-RS实现(Jersey,RESTeasy等)提供了JSON解析器.如果您可以将servlet更改为JAX-RS Web服务,那么您将能够以极少的工作量返回XML和JSON.另请参阅Servlet与RESTful.
选择哪种格式取决于唯一的功能要求.例如,servlet是否应该重用于其他服务?目标客户是什么?等等.
无论如何,JSON格式通常比XML更简洁,最近更受欢迎,所以我只是给出一个以JSON格式传输数据的启动示例,我假设你真的想用平面做vanilla servlet而不是JAX-RS.对于此示例,您只需下载并删除JSON库(如Gson)/WEB-INF/lib,以便将Java对象转换为servlet中的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);
}
Run Code Online (Sandbox Code Playgroud)
这将构建并返回List以下JSON格式:
["item1","item2","item3"]
Run Code Online (Sandbox Code Playgroud)
这又可以通过org.jsonAndroid中的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`.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8557 次 |
| 最近记录: |