Jackson mit POJOs (Plain Old Java™ Objects) verwenden.

RESTful-Services können Inhalt mit dem Format JavaScript Object Notation über die Jackson-Bibliothek konsumieren und erzeugen.

Informationen zu diesem Vorgang

POJO-Typen (einschließlich Arraytypen und java.util.Collection-Typen) sind Entitätstypen, die von Jackson unterstützt werden. Die Jackson-Bibliothek ist in der Laufzeitumgebung dieses Produkts enthalten. Sie müssen keine zusätzlichen Bibliotheken packen.

Die folgenden Jackson-Annotationen werden unterstützt und können für die Annotation von POJOs verwendet werden:
org.codehaus.jackson.annotate.JsonAnySetter
org.codehaus.jackson.annotate.JsonAutoDetect
org.codehaus.jackson.annotate.JsonClass
org.codehaus.jackson.annotate.JsonContentClass
org.codehaus.jackson.annotate.JsonCreator
org.codehaus.jackson.annotate.JsonGetter
org.codehaus.jackson.annotate.JsonIgnore
org.codehaus.jackson.annotate.JsonIgnoreProperties
org.codehaus.jackson.annotate.JsonKeyClass
org.codehaus.jackson.annotate.JsonProperty
org.codehaus.jackson.annotate.JsonPropertyOrder
org.codehaus.jackson.annotate.JsonSetter
org.codehaus.jackson.annotate.JsonSubTypes
org.codehaus.jackson.annotate.JsonSubTypes.Type
org.codehaus.jackson.annotate.JsonTypeInfo
org.codehaus.jackson.annotate.JsonTypeName
org.codehaus.jackson.annotate.JsonValue
org.codehaus.jackson.annotate.JsonWriteNullProperties
org.codehaus.jackson.map.annotate.JsonCachable
org.codehaus.jackson.map.annotate.JsonDeserialize
org.codehaus.jackson.map.annotate.JsonSerialize
org.codehaus.jackson.map.annotate.JsonTypeIdResolver
org.codehaus.jackson.map.annotate.JsonTypeResolver
org.codehaus.jackson.map.annotate.JsonView

Mithilfe dieser Annotationen lässt sich die Konvertierung von POJOs in und aus JSON differenzierter steuern.

Vorgehensweise

  1. Verwenden Sie ein POJO als Parameter oder Rückgabetyp für Ihre Ressourcenmethode.
  2. Fügen Sie Ihrer Ressourcenmethode eine Annotation javax.ws.rs.core.Produces oder javax.ws.rs.core.Consumes mit dem Anwendungs- oder JSON-Medientyp hinzu.

Ergebnisse

Sie haben eine Ressource implementiert, die das Unmarshaling und Marshaling von JSON-Daten in und aus POJOs mit Jackson ausführen kann.

Beispiel

Das folgende Beispiel zeigt eine Ressource, die verwendet wird, um eine Sammlung von Personen zurückzugeben und eine Begrüßung für eine Person zu verarbeiten.
public class Person {

    private String firstName;
    private String lastName;

    public String getFirstName() {
        return this.firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return this.lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

}
public class Greeting {

    private String greeting;

    public String getGreeting() {
        return this.greeting;
    }

    public void setGreeting(String greeting) {
        this.greeting = greeting;
    }

}
import java.util.List;
import java.util.ArrayList;

import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import   javax.ws.rs.core.MediaType; 

@Path("/people")
public class JacksonResource {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public List<Person> getPersonList() {
        List<Person> personArray = new ArrayList<Person>();
        
        Person firstPerson = new Person();
        firstPerson.setFirstName("John");
        firstPerson.setLastName(“Doe”);
        personArray.add(firstPerson);
        
        Person secondPerson = new Person();
        secondPerson.setFirstName(“Fred”);
        secondPerson.setLastName("Thompson");
        personArray.add(secondPerson);
        
        return personArray;
    }
    
    @Path("/greet")
    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public Greeting createGreetingForPerson(Person person) {
        String name = person.getFirstName() + “ “ + person.getLastName();
        Greeting greeting = new Greeting();
        greeting.setGreeting(“Hello “ + name);
        return greeting;
    }

}
Wenn eine GET-Anforderung an die Ressource "JacksonResource" abgesetzt wird, wird der JSON-Inhalt wie das folgende Code-Snippet in der Antwort zurückgegeben.
[{"firstName":"John","lastName":"Doe"},{"firstName":"Fred","lastName":"Thompson"}]
Wenn eine POST-Anforderung an JacksonResource abgesetzt wird, wird JSON-Inhalt wie das folgende Code-Snippet in der Anforderung gesendet und im Person-Objekt gespeichert.
{"firstName":"John","lastName":"Doe"}
JSON-Inhalt wie das folgende Code-Snippet wird in der Antwort zurückgegeben.
{"greeting":"Hello John Doe"}

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_jsoncontent_pojo
Dateiname:twbs_jaxrs_jsoncontent_pojo.html