2012-11-07 9 views
5

Używanie GSON w jaki sposób dołączyć nazwę klasy mojej listy do mojego wyjściowego łańcucha json? Przeszukałem numer api i straciłem wszelkie odniesienia do tego. Używam GsonBuilder w moim prawdziwym kodzie, ale nie widzę dla niego żadnej opcji.gson - należy podać nazwę klasy podczas serializacji java pojo -> json

public class Person { 
    String name; 

    public Person(String name){ 
    this.name = name; 
    } 

    public static void main(String [] args){ 
    Person one = new Person("Alice"); 
    Person two = new Person("Bob"); 

    List<Person> people = new ArrayList<Person>(); 
    people.add(one); 
    people.add(two); 

    String json = new Gson(people); 
    } 
} 

Otrzymano następujące wyniki:

json = [{ "Nazwa": "Alice"}, { "Nazwa" "Bob"}]

Jak czy mogę uzyskać następujące wyniki? lub coś podobnego.

json = { "osoba" [{ "Nazwa": "Alice"}, { "Nazwa" "Bob"}]}

lub

json = [{ "osoba": { "name": "Alicja"}}, { "osoba": { "name": "Bob"}}]

nadzieję, że to coś trywialne, że mam po prostu brakowało. Z góry dziękuję.

+1

Najprostszym rozwiązaniem mogłoby być stworzenie innej klasy, które zawierają jakąś zmienną (lub lista osoby typu) z nazwą "osoba". – Serhiy

+0

To pytanie odnosi się do tego samego problemu, co http://stackoverflow.com/questions/4623329/gson-serialize-pojo-with-root-value-include , a zaakceptowana odpowiedź jest również taka sama. – user905686

Odpowiedz

5

ja nie wiem, czy odpowiedź jest nadal interesujący ciebie, ale co można zrobić, jest następujący:

public static void main(String [] args){ 
    Person one = new Person("Alice"); 
    Person two = new Person("Bob"); 

    List<Person> people = new ArrayList<Person>(); 
    people.add(one); 
    people.add(two); 

    Gson gson = new Gson(); 
    JsonElement je = gson.toJsonTree(people); 
    JsonObject jo = new JsonObject(); 
    jo.add("person", je); 
    System.out.println(jo.toString()); //prints {"person":[{"name": "Alice"},{"name": "Bob"}]} 
} 
+0

To jest dokładnie to, czego szukałem dzięki. – feargal

Powiązane problemy