【发布时间】:2011-09-19 11:18:53
【问题描述】:
我正在使用谷歌的 GSON 包http://code.google.com/p/google-gson/
我正在将 JSON 转换为 Java。
我有这段代码用于进行转换。
Gson gson = new Gson();
Type collectionType = new TypeToken<Collection<QueryProperty>>() {}.getType();
Collection<QueryProperty> queryProperties = gson.fromJson(query, collectionType);
我的 QueryProperty 类有这些字段(带有 getter/setter):
int id;
String uri;
String name;
Set<QueryValue> values;
String selected;
QueryValue 类以前有这些字段(带有 getter/setter):
int id;
String uri;
String name;
我现在希望能够拥有不同的types QueryValue。
我想添加一个 NumericQueryValue 类(QueryValue 的子类),这样我就可以传入一组边界来查询数据库。
double lower;
double upper;
并且想要创建一个新的 ResourceQueryValue(QueryValue 的子类),它看起来与以前的 QueryValue 相同:
int id;
String uri;
String name;
无论如何我可以完成这项工作。即有一个通用的 QueryValue 类,但根据 JSON 提供的参数返回正确的子类。
如果我不清楚,请告诉我。
【问题讨论】:
标签: java javascript json inheritance gson