2013-12-11 3 views
1

У меня есть POJO как этотВключая элемент верхнего уровня с Gson

public class Pojo { 
    ... 
    public static String toJson(ArrayList<Pojo> pojos) { 
     Gson gson = new Gson(); 
     return gson.toJson(pojos); 
    } 
} 

Выход:

[ 
    { 
    "arrival": "19:12:30", 
    "typeOfDay": "regular", 
    "stopCode": "CMPZ", 
    "route": "B", 
    "id": 1 
    }, 
    { 
    "arrival": "19:13:30", 
    "typeOfDay": "regular", 
    "stopCode": "AVSV", 
    "route": "B", 
    "id": 2 
    } 
] 

Но то, что я хочу это:

{ 
    "pojos": [ 
    { 
    "arrival": "19:12:30", 
    "typeOfDay": "regular", 
    "stopCode": "CMPZ", 
    "route": "B", 
    "id": 1 
    }, 
    { 
    "arrival": "19:13:30", 
    "typeOfDay": "regular", 
    "stopCode": "AVSV", 
    "route": "B", 
    "id": 2 
    } 
    ] 
} 

Как может сделать это? Я использую Gson 2.2.4

ответ

1

Изменить свой метод так:

public static String toJson(List<Pojo> pojos) { 
     Gson gson = new Gson(); 
     Map m = new TreeMap(); 
     m.put("pojos", pojos); 
     return gson.toJson(m); 
    } 

BTW, обратите внимание, что я изменил подпись, предпочитаю интерфейс (List) вместо реализации (ArrayList) в ваши методы.

+0

Спасибо. Оно работает! –

+0

Добро пожаловать. – giampaolo

-1

Я понятия не имею, что Gson есть, но я полагаю, что-то, как это будет работать ...

return gson.toJson({pojos:pojos}); 
+0

Спасибо, но я использую Java, я думаю, что это не сработает. –

Смежные вопросы