我使用的是spring-boot-starter-parent 1.3.3和jackson-core-asl:jar:1.9.2。我无法创建与person关联的对象(组),因为组是用person名称创建的。回复如下…
{
"name": "Students"
"person": {"id": 1, "name: "John"}
}
{
"id" : 1,
"name" : "John",
"content" : [ ],
"links" : [ {
"rel" : "self",
"href" : "http://localhost/Group/1"
}, {
"rel" : "person",
"href" : "http://localhost/Group/1/person"
} ]
}
person.java
@Table(name = "person")
public class Person implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private int id;
private String name;
//getter & setter
group.java
@Table(name = "group")
public class Group implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private int id;
private String name;
@ManyToOne
@JoinColumn(name = "person_id")
private Person person;
//getter & setter
如果我将@jsonProperty()放在group.java中,那么一切工作都很好。
@Table(name = "group")
public class Group implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private int id;
private String name;
@ManyToOne
@JoinColumn(name = "person_id")
@JsonProperty("person") // why this is needed??
private Person person;
此外,如果我使用@restResource(export=false)而不是“@JsonProperty”,那么它在测试用例中工作良好,但无法通过swaggerui创建。
正在获取以下错误..
{“cause”:{“cause”:null,“message”:“无法从字符串值(”http://localhost:8080/persons/1“)实例化类型[simple type,class xx.xxx.Person]的值;没有单字符串构造函数/工厂方法\n在[源:org.apache.catalina.connector.coyoteInputStream@64bf4540;行:18,Column:19](通过引用链:xx.xxx.group[\“Person\”])“},”消息“:”无法读取文档:无法从字符串值('http://localhost:8080/Persons/1')实例化类型[简单类型,类xx.xxx.Person]的值;没有单字符串构造函数/工厂方法\n在[源:org.apache.catalina.connector.coyoteInputStream@64bf4540;行:18,Column:19]
请提供您的想法。
在Person.java中勾选类名,类名为Group而不是personer
公共类组实现Serializable{
我正试图找到一种方法来使用jackson的多态反序列化功能,它将基于嵌套在标头/控件对象中的属性反序列化我的对象: JSON 1-类别1: JSON 2-类别2 父类(类似这样的注释) 子类 jackson中是否有现成的功能可以让我进行这种反序列化,或者我遗漏了什么?
问题内容: 我有一个REST API,它返回JSON响应为: 有时它返回: 我有一个像这样的POJO: 那么,有没有一种方法(不是写你自己的其他 自定义解串器 中)Jackson2,这将有助于我映射在JSON来时,它的A型和类型时,它是一个JSON对象? 或者换句话说,在Jackson中,有没有一种方法可以按变量而不是by 映射? 问题答案: 我可以建议您像这样使用JsonNode: 或像这样 :
但它返回一个id为空且产品为空的对象。当然,我不需要为这个简单的操作编写自定义的吗?
我对对象接口的jackson序列化有问题。 我有课 哪个实现 还有上课 哪个实现 上课 我要和Jackson连载Container得到结果 但事实上我得到了结果 尽管我在映射中指定了点的序列化类型(),但在嵌套对象“point”中具有属性“name”。接口点视图没有方法getName,但结果中存在点的字段“name”。 若我从类容器中的方法getMap中删除注释(),我将得到结果 现在点没有属性"
如何使用多态反序列化和嵌套类型信息属性反序列化它?我在中使用嵌套属性,如下所示: 鉴于config Jackson抱怨无法找到属性:
考虑: 如果我们序列化Foo(),输出是: 我想要: 最干净的方法是什么?