package com.xxx; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; public class TestJsonNode { @Test public void test() { String json = "{\"status\": 0, \"segment\": 0, \"result\": {\"hypotheses\": [{\"transcript\": \"原 的 \"}], \"final\": false}, \"id\": \"ba040ef0-9134-46f3-8a95-cc9b70868c07\"}"; ObjectMapper objectMapper = new ObjectMapper(); try { // JsonNode node = objectMapper.readTree(json); // boolean containsStatusField = node.has("status"); // if(!containsStatusField) // { // System.out.println("服务器异常"); // } // // int status = node.findValue("status").intValue(); //System.out.println(status); ASRConversionResponse response = objectMapper.readValue(json, ASRConversionResponse.class); System.out.println(response); } catch (IOException e) { e.printStackTrace(); } } @Data @NoArgsConstructor public class ASRConversionResponse { private Integer status; private String message; private List<Result> result; @JsonProperty("segment_start") //此处为自定义字段绑定类型 private Float segmentStart; @JsonProperty("segment_length") private Float segmentLength; @JsonProperty("total_length") private Float totalLength; private short segment; private String id; } @Data @NoArgsConstructor class Result{ @JsonProperty("final") private Boolean _final; private List<Hypotheses> hypotheses; } @Data @NoArgsConstructor class Hypotheses { private Float likelihood; private String transcript; } }
出错原因:把ASRConversionResponse内部类提出来,单独新建一个类ASRConversionResponse.java
本博客文章绝大多数为原创,少量为转载,代码经过测试验证,如果有疑问直接留言或者私信我。
创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。
创作文章不容易,转载文章必须注明文章出处;如果这篇文章对您有帮助,点击右侧打赏,支持一下吧。