【发布时间】:2011-07-15 08:44:52
【问题描述】:
我正在使用GSON 1.7.1 库创建多个Java 对象的JSON 表示。这很好用,但是当类扩展时,例如 Vector
实际输出:
[
"String 1",
"String 2"
]
要求/预期的输出: 我希望显示新对象字段的内容以及我正在扩展的 Vector 的内容。比如这样的……
{
"extraInfo": "Extra Info",
"vector": [
"String 1",
"String 2"
]
}
我将此添加到现有代码中,因此我无法将类结构从扩展类型 Vector
这是示例源代码...
import java.util.Vector;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
public class ExtendedStringVector extends Vector<String>{
private String extraInfo = "";
public String toString(){
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String jsonOutput = gson.toJson(this);
return jsonOutput;
}
public void setExtraInfo(String test) {
this.extraInfo = test;
}
public String getExtraInfo() {
return extraInfo;
}
public static void main(String[] args) {
ExtendedStringVector esv = new ExtendedStringVector();
esv.add("String 1");
esv.add("String 2");
esv.setExtraInfo("Extra Info");
System.out.println(esv.toString());
}
}
有一些文档here 看起来很接近我的需要,但它不包括我的情况。
有没有一种简单的方法可以获得我期望的输出?我错过了一个简单的设置或类型参数吗?
【问题讨论】:
-
一定要用Gson吗?或者您可以更改 JSON-to/from-Java 库吗?
-
不,我不必使用 GSON。 GSON 非常易于使用/设置,除了这个问题中的问题之外,它可以满足我的一切需求。如果其他人知道可以处理这种情况的其他 JSON 与库之间的往来,请告诉我。