[英]creating nested Json in Java
我试图在其余api的Json响应中获取Json。
httpsConn.getInputStream()将是一个像Json
“ data”:[{“ id”:“ 1”,“名称:” aaa“,”得分“:” 90“},{” id“:” 2“,”名称“:” bbb“,”得分“ :“ 85”}]
Jave代码:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
response = (MarkResponse)objectMapper.readValue(httpsConn.getInputStream(), MarkResponse.class);
Pojo课:
public class MarkResponse {
private int count;
private List<MarkData> markData;
//setter and getter.
}
public class MarkData {
private String id;
private String name;
}
响应如下所示,因为我在主pojo中使用了List。
{“ headers”:{},“ body”:“ MarkResponse [count = 2 markData = [MarkData [id = 1,name = aaa],MarkData [id = 2,name = bbb]] ],” statusCode“:” ACCEPTED“,” statusCodeValue“:202}
我期望的是
{“ headers”:{},“ body”:“ MarkResponse [count = 2 markData = {” id“:” 1“,”名称:“ aaa”},{“ id”:“ 2”,“名称”: “ bbb”} ],“ statusCode”:“ ACCEPTED”,“ statusCodeValue”:202}
我应该进行什么代码更改才能获得预期的输出。
我认为问题是private
领域。 当我做场public
,杰克逊的工作,我不需要objectMapper.disable( 什么 ); 当字段是私有的,受保护的或程序包私有的时,则将其读取,但不会写入。
也就是说,假设您尝试使用org.codehaus.jackson.map.ObjectMapper
(是,不是最新版本),而不是使用其他定义了ObjectMapper类的东西。
更改返回类型后,此方法有效。
我先前的回应是
public ResponseEntity<String> fnCall() {
//code here
return new ResponseEntity<String>(MarkResponse.toString(), HttpStatus.ACCEPTED);
}
我更改了它以使其正常工作。
public MarkResponse fnCall() {
//code here
return response;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.