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