AbS*_*on8 35 java android json gson
目前我正在使用webView前端的原生Android应用程序.
我有类似的东西:
public class dataObject
{
int a;
String b;
}
Run Code Online (Sandbox Code Playgroud)
在活动中,
我已经创建了一个dataObject数组,比如dataObject x [5];
现在我想在回调函数中将这5个dataObject作为JSON传递给我的javascript webView接口.
我浏览了互联网,似乎大多数教程都谈到了如何转换fromJson().没有太多关于toJson().我找到一个教会我的dataObject.toJson()工作.
但是如何通过所有5个dataObjects?
Mar*_*nto 84
这是一个关于如何将Gson与对象列表一起使用的综合示例.这应该准确地演示如何转换到/从Json,如何引用列表等.
Test.java:
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
要编译它:
javac -cp "gson-2.1.jar:." Test.java
Run Code Online (Sandbox Code Playgroud)
最后运行它:
java -cp "gson-2.1.jar:." Test
Run Code Online (Sandbox Code Playgroud)
需要注意的是,如果你使用的是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
Run Code Online (Sandbox Code Playgroud)
请记住,这只是一个命令行程序来演示它是如何工作的,但同样的原则适用于Android环境(引用jar库等)
| 归档时间: |
|
| 查看次数: |
57157 次 |
| 最近记录: |