2017-02-07 5 views
1

私はJersey/JacksonをJSONに返すオブジェクトとして使用しています。 単一のオブジェクトに対して正常に返すことができますが、リストに返すことはできません。このように私のモデルJersey/JacksonでJSONオブジェクトリストを返す方法

<dependencies> 

    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-bundle</artifactId> 
     <version>1.19</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>1.19</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-core</artifactId> 
     <version>1.19</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-json</artifactId> 
     <version>1.19</version> 
    </dependency> 


</dependencies> 

public class Person { 


private String name; 
private String surname; 
private int age; 
public String getName() { 
    return name; 
} 
public void setName(String name) { 
    this.name = name; 
} 
public String getSurname() { 
    return surname; 
} 
public void setSurname(String surname) { 
    this.surname = surname; 
} 
public int getAge() { 
    return age; 
} 
public void setAge(int age) { 
    this.age = age; 
} 
public Person(String name, String surname, int age) { 
    super(); 
    this.name = name; 
    this.surname = surname; 
    this.age = age; 
} 
public Person() { 
    super(); 
} 


@Override 
public String toString() { 


    return "Person [name="+ name +", surname="+ surname +", age="+ age +"]"; 
} 

私のサービス私は、リストオブジェクトはJSON

に、このようなこの私の例である

依存関係をシリアライズ返すにはどうすればよい

このように:

@Path("/getperson") 
@GET 
@Produces(MediaType.APPLICATION_JSON) 
public Person getPerson(){ 

    Person person = new Person(name, surname, age); 



    return person; 

} 


@Path("/getpersons") 
@GET 
@Produces(MediaType.APPLICATION_JSON) 
public List<Person> getPersons(){ 

    Person p1 = new Person("gosling", "james", 55); 
    Person p2 = new Person("torvalds", "linus", 48); 
    Person p3 = new Person("riche", "dennis", 60); 

    List<Person> persons = new ArrayList<Person>(); 
    persons.add(p1); 
    persons.add(p2); 
    persons.add(p3); 

    return persons; 


} 

getPerson()は正常に動作しますが、getpersons()は空に戻ります。私のシナリオでは

+0

/getpersonsは人物のリストを取得する必要があります。 /getPersonsを使用しないでください – ravthiru

答えて

0

、私はGlassFishのジャージの依存関係を使用しています:

<dependency> 
     <groupId>org.glassfish.jersey.core</groupId> 
     <artifactId>jersey-server</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-multipart</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.media</groupId> 
     <artifactId>jersey-media-json-jackson</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.jersey.containers</groupId> 
     <artifactId>jersey-container-servlet</artifactId> 
    </dependency> 

とリストは、私が0構成またはマッピングを希望ほぼそのまま返されたのですか。 コードに特に問題はありません。

関連する問題