【发布时间】:2019-11-10 15:27:21
【问题描述】:
我无法将我的 JSON 从帖子的方法主体转换为我的 POJO,在我的控制器类中使用 @RequestBody。
我调试了错误,发现某些字段已映射,而其他字段未映射。像这样(POJO):
name: null, typeOfPlan: null, Email: example@gmail.com, PhoneNum: 123456789, Website: test.org, Username: null, password: 1234,这很奇怪。
JSON:
{
"confirmPassword": "1234",
"email": "example@gmail.com",
"password": "1234",
"phoneNum": "123456789",
"name": "Hello world",
"typeOfPlan": "Test",
"userName": "user",
"website": "test.org"
}
控制器
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SomeController {
@Autowired
private Service foo;
@CrossOrigin
@PostMapping(value = "/create")
private void createAccount(@RequestBody BigFoo bigFoo) {
foo.createAccount(bigFoo);
}
}
从这里,我调用我的服务,然后调用 DAO 类。
POJO
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class BigFoo {
private String name;
private String typeOfPlan;
private String email;
private String website;
private String phoneNum;
private String username;
private String password;
}
我也尝试在@PostMapping 中允许带有consumes media type 的JSON,但它未能解决这个问题。
使用 Jackson ObjectMapper 效果不佳。
【问题讨论】:
-
您没有包含实际的 JSON 内容。
-
给我一秒钟。编辑:我添加了它们在调试模式下出现在我的对象中的确切格式。抱歉,这是我的 POJO,不是 JSON。
-
分享 JSON 以更好地理解
-
我添加了 JSON
-
尝试添加gettter和setter方法或使用lombok。
标签: java json spring-boot mapping spring-restcontroller