Java Jackson无法使用HAL元素反序列化JSON
我使用SpringDataREST创建简单的RESTAPI,返回带有HAL的JSON(默认情况下)。看起来是这样的:Java Jackson无法使用HAL元素反序列化JSON,java,json,spring,hal,Java,Json,Spring,Hal,我使用SpringDataREST创建简单的RESTAPI,返回带有HAL的JSON(默认情况下)。看起来是这样的: { "_embedded" : { "students" : [ { "studentNumber" : 1, "studentName" : "test", "studentSurname" : "test", "_links" : { "self" : { "href" : "http://localhost:8080/students/2
{
"_embedded" : {
"students" : [ {
"studentNumber" : 1,
"studentName" : "test",
"studentSurname" : "test",
"_links" : {
"self" : {
"href" : "http://localhost:8080/students/2"
},
"student" : {
"href" : "http://localhost:8080/students/2"
}
} ]
},
"_links" : {
"self" : {
"href" : "http://localhost:8080/students"
},
"profile" : {
"href" : "http://localhost:8080/profile/students"
},
"search" : {
"href" : "http://localhost:8080/students/search"
}
}
}
这是我的学生实体课:
@JsonIgnoreProperties(ignoreUnknown = true)
@Entity(name = "students")
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "student_number")
private Long studentNumber;
@Column(name = "student_name")
private String studentName;
@Column(name = "student_surname")
private String studentSurname;
//getters, setters
}
当我想使用Jackson反序列化它时,它给了我一个错误:无法反序列化pl.rasztabiga.springdatarest.entity.Student[]的实例,因为它超出了START\u对象标记
但是当我想手动反序列化它时,跳过“_embedded”和“students”部分,它工作正常(就像在普通JSON中一样,没有HAL)。是的,我正在ObjectMapper中注册Jackson2HalModule,但仍然给出了相同的错误。看起来您的JSON是错误的。在以']'结束students数组之前,您缺少结束student对象的'}'。也许我复制错了,但它是由Spring Data Rest自动生成的好JSON。您能告诉我们您是如何进行反序列化的吗?希望了解更多关于此项的信息。。。