Как изменить структуру 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

Другие вопросы по тегам