如何使用Jersey Rest Webservices和Java解析JSON数组

我从iOS客户端获取Json数组,并希望使用Java和jersey以及Gson解析服务器端的Json。 我从iOS发送POST方法中的JSON数组。 我想使用json,但坚持如何在Java类中保存json数据。 这是我的Json数组的结构

{ "friendList": [ {"id": 1, "username": "user1", "name":"person1", "friendUsername":"fUser1", "friendName":"fName1"}, {"id": 2, "username": "user2", "name":"person2", "friendUsername":"fUser2", "friendName":"fName2"}, {"id": 3, "username": "user3", "name":"person3", "friendUsername":"fUser3", "friendName":"fName3"},... ] } 

这是我的Web服务类

 @Path("/FriendsList") public class RestWebServicesAPI { @POST @Path("/friends") @Consumes(MediaType.APPLICATION_JSON) public Friends saveFriedList(Friends friend, @Context HttpServletRequest request) { // Don't know how to parse json array???? } } 

这是我的朋友class

 import java.util.List; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement Public Class Friends { private String id; private String username; private String name; private String friendUsername; private String friendName; public Friends() { } //getter setter methods } 

我想你必须这样做:

 @Path("/FriendsList") public class RestWebServicesAPI{ @POST @Path("/friends") @Consumes(MediaType.APPLICATION_JSON) public Friends saveFriendList(final String json){ Gson gs = new Gson(); Friends [] n = gs.fromJson(json, Friends [].class); } //ALTERNATIVE @POST @Path("/friends") @Consumes(MediaType.APPLICATION_JSON) public Friends saveFriendList(final Friends[] friends){ } 

请遵循以下来源

 @POST @Path("/friends") @Consumes(MediaType.APPLICATION_JSON) public Friends saveFriendList(Friends friends){ // saveFriend function should have business logic to store your data in db friends= saveFriend(friends); }