2016-08-21 3 views
2

Dies ist eine Follow-up-Frage auf diese Frage:Json Objekt von Postbote gesendet empfing mit null Mitgliedern

sending nested json object using postman

Ich versuche, ein JSON-Objekt zu einem Jersey Web-Service zu senden Postman verwenden.

ich es so mache:

Auf der Seite Jersey:

@Path("/testMethod") 
@POST 
@UnitOfWork 
public short testMethod(@NotNull @BeanParam Test test) 
{ ... } 

Test-Klasse ist eine einfache Klasse:

public class Test 
{ 
    public String field; 

    public Test() 
    { 

    } 
} 

Auf der Postbote Seite Ich bin ein Senden POST-Nachricht mit Nachrichtentext als unverarbeitet und der Inhaltstyp wird als Json (Anwendung/Json) festgelegt. Der Körper selbst ist:

{ 
"field" : "12" 
} 

Wenn diese Anfrage zu senden, die field in dem empfangenen Parameter null ... warum das so ist?

Antwort

0

Wenn Sie nur Ihre JSON-Daten zum Objekt zuordnen möchten, dann entfernen Sie einfach @BeanParam und es wird ordnungsgemäß funktionieren.

Wenn Sie jedoch @BeanParam Funktion verwenden mögen, sollen Sie diese Anmerkung aus ersten Parametern, entfernen und zweiten Parameter mit @BeanParam kommentierte hinzufügen:

@Path("/testMethod") 
@POST 
@UnitOfWork 
public short testMethod(@NotNull Test test, @BeanParam ExtraTest extraTest) 
{ ... } 

und dann ExtraTest Klasse implementieren mit zusätzlichen Feldern Zuordnungen:

@BeanParam ist die Funktion, mit der Sie einfach auf zusätzliche Anforderungsinformationen (Headerfelder, Abfrageparameter usw.) zugreifen können. Es konnte nicht mit Ihrem JSON-Datenobjekt-Mapping gemischt werden.

Weitere Informationen:

https://abhirockzz.wordpress.com/2014/07/21/new-in-jax-rs-2-0-beanparam-annotation/

https://jersey.java.net/apidocs/2.22/jersey/javax/ws/rs/BeanParam.html

+0

Wann sollte ich ein JSON-Objekt ohne die BeanParam Anmerkung akzeptieren und wann sollte ich es verwenden? –

+0

Überprüfen Sie meine bearbeitete Antwort. '@ BeanParam' ist ein Mechanismus, mit dem Sie einfach auf zusätzliche Anforderungsinformationen (Header, Abfrageparameter usw.) zugreifen können. –

Verwandte Themen