@RequestBody ist immer null-Werte
Habe ich einen einfachen REST-service (POST). Aber wenn ich den Dienst von postman @RequestBody ist nicht erhalten, keine Werte.
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
@RestController
public class Add_Policy {
@ResponseBody
@RequestMapping(value = "/Add_Policy", headers = {
"content-type=application/json" }, consumes = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
public Policy GetIPCountry( @RequestBody Policy policy) {
System.out.println("Check value: " + policy.getPolicyNumber());
return policy;
}
}
Meine java-Bean-Objekt wird wie unten:
public class Policy {
private String PolicyNumber;
private String Type;
private String Tenture;
private String SDate;
private String HName;
private String Age;
public String getPolicyNumber() {
return PolicyNumber;
}
public void setPolicyNumber(String policyNumber) {
PolicyNumber = policyNumber;
}
public String getType() {
return Type;
}
public void setType(String type) {
Type = type;
}
public String getTenture() {
return Tenture;
}
System.aus.println druckt eine null als Wert für PolicyNumber.
Bitte helfen Sie mir dieses Problem zu beheben.
JSON, die ich leite im request-body
{
"PolicyNumber": "123",
"Type": "Test",
"Tenture": "10",
"SDate": "10-July-2016",
"HName": "Test User",
"Age": "10"
}
Habe ich sogar Content-Type
zu application/json
im Postbote
- Gelten
@ResponseBody
an die Ausgabe der Methode, nicht die Methode selbst. Auch gehören dieproduces
header-Wert, wenn Sie erwarten, dass JSON-Wert. - Auch wenn ich die Antwort als ungültig Werten aus der Anforderung ist gleich null
policy
selbst war nicht null, sind Sie sicher, dass es enthältpolicyNumber
?- Alle Werte in der
Policy
Objekt wird wieder als null. Ich habe einetostring()
Methodepolicy
bean und überprüft diese. - könnten Sie bitte zeigen Sie uns Ihre json-Anfrage?
- Versuchen Sie, die ersten Zeichen die Eigenschaften in Ihrer JSON-in Kleinbuchstaben. ZB. { "policyNumber": "123", "type": "Test", "tentur": "10", "sDate": "10-Juli-2016", ": hName": "Test User", "Alter": "10" }
- Danke @AmanSinghal es funktionierte.. ich geändert alle Tasten' Buchstaben in Kleinbuchstaben um. auch
HName
zuhname
. Aber wirklich dint verstanden, dass dieses Verhalten der Feder. - Sie Folgen müssen, camel-case-Konvention, name der Einstellung aller Eigenschaften in JSON nicht helfen würde.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, die ersten Zeichen die Eigenschaften in Ihrer JSON-in Kleinbuchstaben. ZB.
Grundsätzlich Spring nutzt getter und setter, um die Eigenschaften der bean-Objekt. Und es nimmt die Eigenschaft des JSON-Objekt, gleicht Sie mit der setter mit dem gleichen Namen. zB um die policyNumber Eigenschaft, die es versucht zu finden, ein setter mit dem Namen setpolicyNumber() in der bean-Klasse und verwenden, um den Wert Ihrer bean-Objekt.
Java-Konvention verlangt den Namen der variable in ein POJO (Attribut einer Klasse) muss das erste Zeichen in Kleinbuchstaben.
Haben Sie Großbuchstaben in deinem JSON-Eigenschaften, was den Fehler verursacht.