Sto usando Jersey e vuole l'uscita seguente JSON con solo i campi elencati:Come generare JSON da una risorsa Jersey?
[
{
"name": "Holidays",
"value": "http://www.google.com/calendar/feeds/usa__en%40holiday.calendar.google.com/public/basic"
},
{
"name": "Personal",
"value": "http://www.google.com/calendar/feeds/myprivatefeed/basic"
}
]
Se devo, posso circondare che JSON con { "feed": ...}, ma avendo questa essere facoltativo sarebbe il migliore Voglio estrarre queste informazioni da un elenco di CalendarFeed archiviati in un POJO membro che viene recuperato tramite Hibernate. Ecco i POJO semplificate:
public class Member {
private String username;
private String password;
private Set<CalendarFeed> calendarFeeds = new HashSet<CalendarFeed>();
}
public class CalendarFeed {
public enum FeedType { GCAL, EVENT };
private Member owner;
private String name;
private String value;
private FeedType type;
}
Attualmente, ho una risorsa Jersey chiamato CalendarResource che emette manualmente JSON con il calendario alimenta informazioni:
@Path("/calendars")
public class CalendarResource {
@Inject("memberService")
private MemberService memberService;
@GET
@Produces(MediaType.APPLICATION_JSON)
public String getCalendars() {
// Get currently logged in member
Member member = memberService.getCurrentMember();
StringBuilder out = new StringBuilder("[");
boolean first = true;
for (CalendarFeed feed : member.getPerson().getCalendarFeeds()) {
if (!first) {
out.append(",");
}
out.append("{\"");
out.append(feed.getName());
out.append("\":\"");
out.append(feed.getValue());
out.append("\"}");
first = false;
}
out.append("]");
return out.toString();
}
}
Ma io non sono sicuro di come fare sull'automazione di questo. Sto solo iniziando a utilizzare Jersey e non sono chiaro su come usarlo per restituire JSON. Sembra che abbia un modo per farlo, ma sembra che ho bisogno di aggiungere annotazioni ai miei POJO. Inoltre, leggo gli altri dicendo che devo usare Jackson. Sono stato googling e non riesco a trovare un buon esempio di restituire JSON da una risorsa di Jersey. Qualcuno sa di qualsiasi? O puoi mostrarmi come usare Jackson o Jersey per creare JSON per l'esempio sopra?
Grazie. Questa soluzione è semplice ed elegante. – tonga