Как изменить структуру JSON, созданную Gson в Java
JSON, созданный Gson из List of Objects выглядит следующим образом.
"[[{"id":1,"name":"Shepherd"}],[{"id":2,"name":"Bull"}]]"
Но я хочу, чтобы это выглядело как
"[{'id':1,'name':'Shepherd'},{'id':2,'name':'Bull'}]"
Я создал этот JSON с помощью библиотеки Gson, как это.
class Dog{
long id;
String name;
}
ArrayList<Dog> myDogs= new ArrayList<Dog>();
ArrayList<Object> objects = new ArrayList<Object>();
objects = Application.getApplication.query(Object.class, " from Dog", 0, 0);
//Fetching data through HQL
myDogs=(ArrayList<Dog>)objects;
String jsonStr = new Gson().toJson(myDogs);
Я хочу этот специфический структурированный json, чтобы он напрямую конвертировался в RealmList типа Dog с помощью.
realm.createOrUpdateAllFromJson(Dog.class, jsonStr);
1 ответ
Решение
Что вы получаете от своего query
это что-то вроде List<List<Dog>>
Тебе нужно List<Dog>
чтобы получить JSON, как вы хотите, попробуйте этот вариант
ArrayList<Object> objects = new ArrayList<Object>();
objects = Application.getApplication.query(Object.class, " from Dog", 0, 0);
//Fetching data through HQL
myDogs=(ArrayList<List<Dog>)objects;
String jsonStr = new Gson().toJson(Iterables.concat(myDogs));
см. http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Iterables.html