JSON编码用Java编写的Java对象和数组数组

时间:2011-11-09 20:49:41

标签: java php android arrays json

我已经阅读了很多关于它的答案,但有时它们是数组而其他一些是对象,这里有两者一起。

我有更多存储在数组中的同一对象的变量。现在我想将所有这些转换为字符串,以便我可以通过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帖子。

2 个答案:

答案 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使用原始数据。