将 JSON 子对象属性绑定到 Jackson 中的 Java 对象字段
我有一个 JSON 对象,比如说:
{
"foo": {
"bar": 1
},
"baz": 2
}
我想将它绑定到一个 Java 对象中,例如:
@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo {
private int bar;
@JsonProperty("baz")
private int baz;
}
如何将 JSON 中的 foo.bar 的值设置为 bar 。 Foo
Java 对象中的字段?
我尝试使用 @JsonProperty("foo.bar")
注释该字段,但它不起作用。
I have a JSON object, say:
{
"foo": {
"bar": 1
},
"baz": 2
}
and I want to bind it into a Java object, like:
@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo {
private int bar;
@JsonProperty("baz")
private int baz;
}
How can I set the value of foo.bar
from JSON to the bar
field in the Foo
Java object?
I've tried annotating the field with @JsonProperty("foo.bar")
, but it doesn't work like that.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这并不完美,但这是我能想到的最优雅的方式。
This ain't perfect but it's the most elegant way I could figure out.
没有自动功能(据我所知),但这是一个经常被要求的功能;有这个 Jira RFE:http://jira.codehaus.org/browse/JACKSON-132 这听起来像是您正在寻找的。
There is no automated functionality for this (as far as I know), but this is a somewhat often requested feature; there is this Jira RFE: http://jira.codehaus.org/browse/JACKSON-132 that sounds like what you are looking for.
这是一个有效的简单示例:
JSON:
Java:
Here a quick example that works:
JSON:
Java:
这就像将苹果绑在橙子上一样!另一个“朗朗上口的短语”是“阻抗不匹配”,或者在《星际迷航 1》中是“非 Sequetor!”将其绑定为 MATCHED 对象,然后在 Java 中在不同类型的对象之间进行新的赋值。
That's like binding an apple to an orange! Another 'catchy phrase' would be, "Impedance Mismatch", or in Star Trek 1, "Non Sequetor!" Bind it a MATCHED object, then do new assignment in Java between the different kinds of objects.