我创建了一个包含三个程序的应用程序套件。
第一个程序是一个Java应用程序,它获取图像文件并调整其大小,并创建一个带有附加字符串的对象以供Android客户端使用。

第二个程序是一个Java servlet(RESTful服务atm),它接受第一个程序的上载并将对象存储到数据库中,然后将这些对象存储到其他Java应用程序和Android手机中。

第三个程序是一个Android应用程序,需要从服务器下载对象,将它们保存到SD卡,然后访问它们以使用。

我只想使用RMI在网络上传递对象,但是Android不支持RMI,所以我开始研究XML-RPC,并最终决定尝试使用RESTful服务作为上载和下载的Web控制器。我遇到的问题是弄清楚如何编码我的数据。

一类具有包含字符串的对象的ArrayList。

一类有一个图像和一些字符串。

更多类将带有不同数量的字符串和图像。

目前,我正在尝试使用Gson将对象编码为JSON,但是当我查看文件时似乎无法正常工作,它无法处理ArrayList。我正在考虑将图像转换为Base64字符串以简化存储。

我应该如何处理我的数据以及可以使用什么服务器?理想情况下,我只想在初始Java应用程序上获取数据,然后将对象传递给服务器和其他客户端。

谢谢!

最佳答案

如果要进行XML RPC,则必须将图像数据编码为base64。您也可以尝试使用JSON RPC(因为这样会容易得多)。这样,ArrayList 将成为JSONArray [“ string1”,“ string2”,..],并且您还可以使用类似的结构将图像数据投入混合

{
  "strings": ["string1","string2",...],
  "imageData": "base64 encoded image data"
}


有关JSON的更多信息,您可以查看与Android SDK捆绑在一起的org.json软件包。

10-04 23:00
查看更多