Я использую пакет Google 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 имеет следующие поля (с геттерами / сеттерами):
int id;
String uri;
String name;
Set<QueryValue> values;
String selected;
Класс QueryValue имел следующие поля (с геттерами / сеттерами), очевидно:
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.
Если я не совсем уверен, пожалуйста, дайте мне знать.