将 arraylist 从 servlet 发送到 Android 应用程序

2024-01-09

如何将数组列表从 servlet 发送到 Android 应用程序?


到目前为止,您需要将其转换为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.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`.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 arraylist 从 servlet 发送到 Android 应用程序 的相关文章

  • 如何从 AAR 依赖项中排除特定资源?

    有没有一种相当简单的方法来实现模块的build gradle文件来指示应排除依赖项中的某些文件 我特别感兴趣的是从 AAR 中排除某些资源 金丝雀泄密 https github com square leakcanary是一个有趣的库 可帮
  • onActivityResult 中的完成活动不起作用

    我有一对必须同生共死的活动 基本上 AlphaActivity 会做一些工作 然后发送一个意图 startActivityForResult 对于 Beta 活动 当 Beta 活动完成时 我希望它发送一个意图 startActivity
  • 合并两个位图图像(并排)

    任何人都可以帮助将两个位图图像合并为单个位图 在android中 并排 谢谢 尤瓦拉吉 您可以使用Canvas 查看这篇文章 http www jondev net articles Combining 2 Images in Androi
  • 如何从另一个xml文件动态更新xml文件?

    我想从另一个 xml 文件更新 xml 文件 我使用了一个 xml 文件 如下所示 one xml
  • Mailgun POST /messages API 总是抛出 401 禁止

    我正在尝试使用改造库在 Android 中发送 Mailgun POST messages API 请求 以下是改装要求 HTTP POSThttps api key xxx v3 sandboxxxx messages https api
  • 更改 AChartEngine 中的图例大小

    我想专门更改饼图的图例大小输出 我已经尝试了所有可以找到的 AChartEngine 方法 但没有一个只能更改图例文本大小 我必须重写 onDraw 函数吗 如果是这样 怎么办 要设置图例高度 请使用 renderer setLegendH
  • OpenCV InRange 参数

    我在 Android 上使用 OpenCV 来实时查找特定颜色的圆圈 我的第一步是仅保留与我正在寻找的定义颜色相对应的像素 在本例中为红色或绿色 示例图像 https i stack imgur com CIozU jpg 为此 我正在使用
  • 如何在照片删除后刷新 Android 的 MediaStore

    问题 如何使媒体存储刷新其已删除文件的条目 从外部存储中删除代码中的照片后 我仍然在图库中看到已删除照片的插槽 空白照片 画廊似乎反映了媒体存储 并且在媒体存储中找到了已删除的照片 直到手机重新启动或通常 直到重新扫描媒体为止 尝试扫描已删
  • 使用 Java 在浏览器中下载 CSV 文件

    我正在尝试在 Web 应用程序上添加一个按钮 单击该按钮会下载一个 CSV 文件 该文件很小 大小仅约 4KB 我已经制作了按钮并附加了一个侦听器 文件也准备好了 我现在唯一需要做的就是创建单击按钮时下载 csv 文件的实际事件 假设 fi
  • 如何将单选按钮状态保存到已保存/共享首选项?

    我可以在保存的首选项中保存字符串 但很难保存单选按钮 public class PersonalDetailsf extends Activity private SharedPreferences sharedPreferences pr
  • onTouchEvent()中如何区分移动和点击?

    在我的应用程序中 我需要处理移动和单击事件 一次点击是由一个 ACTION DOWN 操作 多个 ACTION MOVE 操作和一个 ACTION UP 操作组成的序列 理论上 如果您收到 ACTION DOWN 事件 然后收到 ACTIO
  • 更改android中禁用按钮的颜色

    有没有办法通过样式或其他形式更改 android 中禁用按钮的颜色 我目前有以下内容 可绘制 button default xml
  • Android开发:未定义方法

    大家好 我是 Android 和 Eclipse 的新手 我刚刚遵循了developer android com 上的教程 现在我在添加操作栏 http developer android com training basics actio
  • 如何在android中录制音频时暂停背景音乐

    我正在 Android 中开发一个音频记录应用程序 因此 如果设备音乐播放器中已播放任何背景音乐 则应在开始录制之前暂停该背景音乐 并且每当录制停止或暂停时 背景音乐都应恢复 播放录制的音频时也应该如此 有人可以帮我解决这个问题吗 提前致谢
  • 无法在 Android 模拟器中安装 apk

    我正在尝试通过 adb shell 在 ICS 模拟器中安装 apk 从一个站点下载 但出现以下错误 失败 INSTALL FAILED UID CHANGED 可能是什么问题 只需 rm r 有问题的数据目录即可 如果您在安装时遇到此错误
  • 如何在新标签 android webview 中打开链接? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经使用 webview 创建了一个 android 应用程序来显示我的网站 我什至想添加在新选项卡中打开链接的功能 但我找不到任何
  • Android:如何通过右侧的十字按钮清除EditText

    我创建了一个EditText用于搜索 左侧包含搜索图标 右侧包含图标
  • Amazon IAP 不会调用 onPurchaseResponse

    我有一个 Android 应用程序 它使用 IAP 我正在发送PurchasingManager initiateGetUserIdRequest 并得到用户识别成功 in onGetUserIdResponse 得到回复后Purchasi
  • 使用支持库中的 BottomSheet 时如何调暗背景?

    怎样才能让背景像显示的那样变暗here https material design storage googleapis com publish material v 8 material ext publish 0Bzhp5Z4wHba3
  • 修改 ADW Android 启动器?

    我想更改和修改开源 ADW 启动器 启动器可在此处获取 https github com AnderWeb android packages apps Launcher https github com AnderWeb android p

随机推荐

  • Azure Blob - 503 出口超出帐户限制

    所以我偶尔会收到这个错误 初始化流读取器时出错或未找到 Blob 响应状态 代码不表示成功 503 出口超过该帐户 限制 我不知道帐户限制 并且文件不应大到足以突破吞吐量限制 Blob 存储具有一些令人惊讶的高吞吐量限制 有谁见过这个并知道
  • X11 为什么我无法绘制任何文字?

    我正在努力学习X11 这对我来说非常困难 因为我没有 Linux 上的窗口应用程序的经验 我写了一些简单的代码 但无法解决这个不可见的文本问题 一切可能都工作正常 当我尝试使用 DrawRectangle 函数绘制矩形时 它正在工作 这是代
  • 仅将对话中的最新回复复制到剪贴板

    我有以下 Outlook VBA 代码 可将所选电子邮件的正文复制到 Windows 剪贴板 Sub CopyMailToClipboard On Error GoTo HandleErr Copies the selected messa
  • PHP继承和MySQL

    所以我尝试在 PHP 中采用良好的面向对象编程技术 我的大多数 阅读全部 项目都涉及 MySQL 数据库 我眼前的问题涉及我需要开发的用户模型 我当前的项目有代理和潜在客户 代理和潜在客户都是拥有许多相同信息的用户 因此 显然 我想要一个
  • 通过 Opengl 和 GLUT 在 Haskell 中编程

    每次我尝试编译并运行我找到的教程时 都会收到一条消息 提示 找不到模块 GL 或 找不到模块 GLUT 我尝试用 import Graphics Rendering OpenGL 和 import Graphics UI GLUT 替换 i
  • 无法加载 SqlServerSpatial.dll

    我正在尝试在 C Net 项目中使用 Sql Server Spatial CLR 类型 我想使用 Sql Geometry 从数据库中查询空间记录 我在本地计算机上运行 Visual Studio 2010 中运行的单元测试 并访问远程
  • PHP 是否有检测其运行操作系统的功能?

    我不知道在 PHP 数据库中使用什么关键字查找此内容 所以我在这里询问 我想知道的原因是不同的操作系统如何处理文本文档中的新行 我在 Windows 中使用 CSV 文件 但每次我想添加新行时 实际发生的情况是新行被粘贴到最新行的后面 原因
  • Bing 地图 V8 API 中不再有鸟瞰图吗?

    V8 中似乎不再提供鸟瞰图 谁能确认一下事实确实如此 或者是否有任何方法在新版本中仍然使用鸟瞰图 微软关于这方面的文档非常糟糕 所以我只是从各种来源拼凑信息 例如 1 在他们的MapTypeId 枚举 https msdn microsof
  • python字典中有多个键,可能吗?

    我想用 python 构建一个字典 其中不同的键引用相同的元素 我有这本词典 persons George G MacDonald Luke G MacDonald Larry G MacDonald 键全部引用相同的字符串 但字符串在程序
  • 将 Brownfield PHP Web 应用程序转换为 Zend Framework

    我们正在考虑将 PHP Web 应用程序从不使用框架 这会害死我们 转变为使用 Zend 框架 由于应用程序的规模 我认为从头开始对于管理来说不是一个可行的选择 因此我想开始研究如何慢慢地将当前站点结构转换为使用 Zend Framewor
  • 在 MapKit 中沿着弧线对视觉元素进行动画处理

    如何沿着我创建的圆弧添加视觉元素并为其设置动画地图套件内 下面的代码将在两点之间创建一个漂亮的圆弧 想象一个动画视觉效果 代表一架飞机沿着这条弧线飞行 void addArc CLLocationCoordinate2D sanFranci
  • 如何在postgresql中为regexp_matches创建索引?

    我有一张桌子product product id desciption 322919 text add 185 add text 322920 text add 184 add text add 185 add text 322921 te
  • 通过将两个系列相乘来创建 pandas 中的数据框

    假设我在 pandas 中有两个系列 系列 A 和系列 B 如何创建一个数据框 其中所有这些值相乘 即系列 A 位于左侧 系列 B 位于顶部 基本上与此相同的概念 其中系列 A 是左侧的黄色 系列 B 是顶部的黄色 并且中间的所有值都将通过
  • 为phonegap构建闪屏的横向和纵向图像?

    我想知道是否可以在 PhoneGap 构建应用程序中为启动屏幕提供 2 个单独的图像 一张用于肖像 一张用于风景 目前 当我打开应用程序时 它会显示启动屏幕 如果我更改方向 它会像素化 我现在已经在 config xml 文件中得到了这个
  • python 根据元组第一个值求和元组列表

    假设我有以下列表元组 myList 0 2 1 3 2 4 0 5 1 6 我想根据相同的第一个元组值对该列表求和 n m n k m l m z m k l z For myList sum 2 5 3 6 28 我怎样才能得到这个 您可
  • 如何设置 iTunes 中歌曲的声音本地通知?

    我尝试创建闹钟应用程序 但我不知道如何将 iTunes 中的歌曲设置为本地通知的声音 现在我使用此代码来调用 iTunes void tableView UITableView tableView didSelectRowAtIndexPa
  • 如何将 AxesImage 中的坐标映射到保存的图像文件中的坐标?

    I use 绘图库 http matplotlib sourceforge net 要将数字矩阵显示为图像 请沿轴附加标签 然后将绘图保存到 PNG 文件 为了创建 HTML 图像映射 我需要知道 imshow 显示的图像中某个区域的 PN
  • 安卓4.0.3。 USB 主机 - 通过 controlTransfer 发送数据

    我是 Android 新手 刚刚开始使用 Android 4 0 3 启用 USB 主机连接 我正在尝试通过 USB 向相机发送一些信号 假设它应该是相机必须接收的一些字符 例如开始录音 我想通过 controlTransfer 来完成此操
  • Oracle创建表AS以及表注释和列注释

    是否可以创建另一个表作为 CREATE TABLE AS 并保留列的注释 CREATE TABLE TABLE1 COPY AS SELECT FROM TABLE1 前面的声明不包括专栏的评论 因此 TABLE1 COPY 没有列注释 使
  • 将 arraylist 从 servlet 发送到 Android 应用程序

    如何将数组列表从 servlet 发送到 Android 应用程序 到目前为止 您需要将其转换为String采用某种标准格式 然后可以使用现有库对其进行解析和构建 例如 JSON XML 或 CSV 所有这些都是标准化且可交换的字符串格式