我创建了一个包含三个程序的应用程序套件。
第一个程序是一个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软件包。