我正在使用fasterxml将JSON转换为java。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.6.3</version>
</dependency>
当我从UI访问服务时,我一直得到400 Bad Request
。而高级REST客户端的调用运行良好。
如何打印在后端(java端)收到的JSON?
我尝试使用@ControllerAdvice注释。它给了我一个堆叠比赛,如下所示。但它并没有打印出确切的输入JSON。
13:30:12563警告[com.att.um.controller.ControllerConfig](默认值task-36)返回HTTP 400错误请求:org.springframework.http.coverter.HttpMessageNotReadableException:无法读取JSON:无法反序列化的实例com.att.um.web.services.rest.model.Json请求退出START_ARAY[来源:io.undertow.servlet.spec.ServletInputStreamImpl@43e804cf;行:1,列:1];嵌套异常为com.fasterxml.jackson.databind.JsonMappingException:无法反序列化com.att.um.web.services.rest.model.JsonRequest的实例在[源:io.undertow.servlet.spec.ServletInputStreamImpl@43e804cf;行:1,列:1]位于org.springframework.http.coverter.json.MappingJackson2HttpMessageConverter.readJavaType(MappingJackson2HHttpMessageConverter.java:228)[spring-web-4.0.9.REASE.jar:4.0.9.RELEASE]org.springframework.http.coverter.json.MappingJackson2HttpMessageConverter.read(MappingJackson2HttpMessageConverter.java:220)[spring-web-4.0.9.REASE.jar:4.0.9.RELEASE]org.springframework.web.servlet.mvc.method.annotations.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverter MethodArgumentRolver.java:138)[spring-webmvc-4.0.9.RELEASE.jar:4.0.9.RELENSE]org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponse BodyMethod Processor.java:178)[spring-webmvc-4.0.9.RELEASE.jar:4.0.9.RELENSE]org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponse BodyMethod Processor.java:98)[spring-webmvc-4.0.9.RELEASE.jar:4.0.9.RELENSE]
如果您对Controller
实现进行注释,我认为Jackson
已经为您做到了这一点
例如:
@CrossOrigin
@RestController
public class YourControllerImpl implements YourController {
@Autowired
private YourService yourService;
@Override
public ResponseEntity addObject(@RequestBody Object obj) {
yourService.addObject(obj);
return ResponseEntity.ok().build();
}
}
方法yourService.addObject(obj);
可以有一个后端逻辑,例如:Object myObj = new Object(obj)
或Object myObj = new Object().from(obj)
或Object myObj = new Object();
,并使用getters & setters
API
可能看起来像:
@RequestMapping("/object")
public interface YourController {
@PostMapping
ResponseEntity addObject(@RequestBody Object obj);
@RequestBody
将通过POST
发送您的JSON
对象。如果您想查看发送的内容,可以使用System.out.println(obj)
。您还应该实现DTOs
。