我已经阅读了很多关于它的答案,但有时它们是数组而其他一些是对象,这里有两者一起。
我有更多存储在数组中的同一对象的变量。现在我想将所有这些转换为字符串,以便我可以通过HTTP POST请求发送到服务器,然后PHP必须能够使用JSON解码读取它们。
这就是我的Android应用程序中的代码Java:
对象类
class DataMisurati {
float valori[]=new float[3];
long tempo;
DataMisurati() { }
DataMisurati(float[] values, long temp) {
this.valori[0] = values[0];
this.valori[1] = values[1];
this.valori[2] = values[2];
this.tempo=temp;
}
}
这里有一些主要代码:
DataMisurati[] daticompleti;
//now i fill the array daticompleti
//here must be the code to Json the array of objects and then convert it to string
然后必须有发送字符串的HTTP帖子。
答案 0 :(得分:1)
肯定会同意Vinnie认为GSON是要走的路。就个人而言,我建议你跳过聪明的对象绑定内容,然后查看JSONWriter
类。这比Gson.toJson()
方法快得多(它不会在幕后进行反思魔法),使用更少的内存和更好的扩展。缺点是你需要编写更多的代码来编码你的JSON,但我认为在一个受限制的移动平台上工作是一个值得的权衡。
使用JSONWriter
也意味着您只需要将GSON stream package导入您的应用(14kb),而不是完整的GSON包(515kb)。
我相信GSON流程软件包基本上是Google捆绑到最新版Android Framework中的。
答案 1 :(得分:0)
我发现Gson最容易使用自定义对象。首先从这里下载Gson jar:http://code.google.com/p/google-gson/downloads/list
然后,将jar导入到您的项目中,根据您使用的IDE,这会略有不同。将jar放入项目后,在顶部执行import语句,其中所有其他import语句都是:
import com.google.gson.Gson;
然后像这样从对象转到字符串:
Gson gson = new Gson();
String jsonString = gson.toJson(daticompleti);
然后,在您的http连接中,您想要设置请求实体,如下所示:
request.setEntity(new ByteArrayEntity(jsonString.getBytes("UTF8")));
或者你正在做连接的东西。重要的是使用getBytes,因为post body使用原始数据。