Gson将数据对象数组转换为JSON-Android

目前,我正在使用带有webView前端的本机android应用程序。

我有类似的东西:

public class dataObject

{

int a;

String b;

}

在活动中

我做了一个dataObject数组,比如dataObject x [5];

现在,我想将这5个dataObject作为JSON的回调函数传递给我的javascript webView接口。

我浏览了互联网,似乎大多数教程都在谈论如何转换fromJson()。没有太多关于toJson()。我找到了一个教会我的人dataObject.toJson(),可以工作。

但是如何传递所有5个dataObject?

回答:

这是一个有关如何将Gson与对象列表一起使用的综合示例。这应该 确切 说明如何与Json进行相互转换,如何引用列表等。

import com.google.gson.Gson;

import java.util.List;

import java.util.ArrayList;

import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;

public class Test {

public static void main (String[] args) {

// Initialize a list of type DataObject

List<DataObject> objList = new ArrayList<DataObject>();

objList.add(new DataObject(0, "zero"));

objList.add(new DataObject(1, "one"));

objList.add(new DataObject(2, "two"));

// Convert the object to a JSON string

String json = new Gson().toJson(objList);

System.out.println(json);

// Now convert the JSON string back to your java object

Type type = new TypeToken<List<DataObject>>(){}.getType();

List<DataObject> inpList = new Gson().fromJson(json, type);

for (int i=0;i<inpList.size();i++) {

DataObject x = inpList.get(i);

System.out.println(x);

}

}

private static class DataObject {

private int a;

private String b;

public DataObject(int a, String b) {

this.a = a;

this.b = b;

}

public String toString() {

return "a = " +a+ ", b = " +b;

}

}

}

要编译它:

javac -cp "gson-2.1.jar:." Test.java

最后运行它:

java -cp "gson-2.1.jar:." Test

请注意,如果你使用的是Windows,你必须切换:;前两个命令。

运行它之后,您应该看到以下输出:

[{"a":0,"b":"zero"},{"a":1,"b":"one"},{"a":2,"b":"two"}]

a = 0, b = zero

a = 1, b = one

a = 2, b = two

请记住,这只是一个命令行程序来 演示 其工作原理,但是相同的原理也适用于Android环境(引用jar库等)。

以上是 Gson将数据对象数组转换为JSON-Android 的全部内容, 来源链接: utcz.com/qa/427359.html

回到顶部