我使用的是新澤西州和要輸出只有各字段的內容JSON上市:如何從Jersey資源生成JSON?
[
{
"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"
}
]
如果必須這樣,我可以圍繞該JSON與{「飼料」:...},但有這是可選的將是最好的。我想從存儲在通過Hibernate檢索的成員POJO中的CalendarFeeds列表中獲取這些信息。下面是簡化的POJO:
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;
}
目前,我有叫CalendarResource澤西島的資源,手動輸出JSON與日曆供稿信息:
@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();
}
}
但我不知道如何去關於自動化這個。我剛剛開始使用Jersey,並且不清楚如何使用它來返回JSON。這聽起來像是有辦法做到這一點,但它看起來像我需要添加註釋到我的POJO。另外,我讀過其他人說我需要使用傑克遜。我一直在谷歌搜索,似乎無法找到一個從澤西島資源返回JSON的一個很好和簡單的例子。任何人都知道嗎?或者你能告訴我如何使用Jackson或Jersey爲上面的例子創建JSON?
謝謝。這個解決方案簡單而優雅。 – tonga 2013-07-05 02:51:52