2012-02-16 42 views
4

我嘗試用AppEngine上Restlet框架和我嘗試檢索對象的列表(ArrayList的爲例)與JAX-RS JSON表示資源需要的Restlet + JAX-RS + JSON很好的例子

對於實例的樣本用戶等級:

public class User { 

    private String lastname; 

    private String firstname; 

    public User(){}; 
    public User(String lname,String fname){ 
     this.firstname = fname; 
     this.lastname = lname; 
    } 

    public String getLastname() { 
     return lastname; 
    } 
    public void setLastname(String lastname) { 
     this.lastname = lastname; 
    } 

    public String getFirstname() { 
     return firstname; 
    } 
    public void setFirstname(String firstname) { 
     this.firstname = firstname; 
    } 
} 

我要找回這樣

@GET @Path("users") 
@Produces(MediaType.APPLICATION_JSON) 
public ArrayList<User> getUsers() {  
    ArrayList<User> users = new ArrayList<User>(); 
    users.add(new User("userlastname1", "userfirstname1")); 
    users.add(new User("userlastname3", "userfirstname2")); 

    return users; 
} 

用戶的名單,我希望得到這個JSON表示

[ 
    { 
     lastname: "userlastname1", 
     firstname: "userfirstname1" 
    }, 
    { 
     lastname: "userlastname2", 
     firstname: "userfirstname2" 
    } 
] 

實現此目的的最佳方法是什麼?

的的Restlet文檔中提到的系列化proccess是自動的,是的,它只有一個類似「用戶」對象的情況下

new User("userlastname1", "userfirstname1") 

還給我好JSON表示

{ 
    lastname: "userlastname1", 
    firstname: "userfirstname1" 
} 

如果有人能給我一些解釋/示例代碼/想法。非常感謝

問候

回答

1

我實際使用的Restlet的Java EE的版本只是想通了這一點爲自己。不知道這個模塊是否可用於GAE沙盒,但我只是將Jackson的Restlet擴展作爲依賴項添加進去,它的工作方式就像一個魅力。

如果您正在使用Maven:

<dependency> 
    <groupId>org.restlet.jee</groupId> 
    <artifactId>org.restlet.ext.jackson</artifactId> 
    <version>2.0.10</version> 
</dependency> 
1
@Path("/users") 
public interface IUserRoutes 
{ 
    @GET 
    Response getUsers(); 
} 


@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON) 
public class UserRoutesImpl implements IUserRoutes 
{ 
    public Response getUsers() 
    { 
     return new UserResponse().getUsers(); 
    } 
} 


public class UserResponse 
{ 
    public Response getUser() 
    { 
     List<Users> users = new UserModel().getUsers(); 
     return Response.ok(users).build(); 
    } 
} 

用戶對象應該是一個POJO。

public class User 
{ 
    private String firstName; 
    private String lastName; 

    public String getFirstname() 
    { 
     return firstName; 
    } 
    public String getLastname() 
    { 
     return lastName; 
    } 
    //etc 
} 
相關問題