我有一个看起来像这样的课程:
class Data {
@JsonCreator
public Data(@JsonProperty("string") String s, Widget w) {
string = s;
widget = w;
}
String string;
Widget widget;
}
我想从JSON中反序列化它,如
{
"string": "string value"
}
反序列化时,我想将widget
设置为共享实例。我在创建对象映射器时有这个实例,但我看不出如何告诉Jackson使用这个实例。
我看到JsonDeserialize.getNullValue
和getEmptyValue
,但这些似乎是用于处理
{
"string": "string value", "widget": null
}
这不是我的JSON。
答案 0 :(得分:1)
您可以尝试@JacksonInject
:
public class Data {
@JacksonInject
public Widget widget;
...
}
然后使用如下:
Widget widget = ...
InjectableValues injectable = new InjectableValues.Std().addValue(Widget.class, widget);
Data data = new ObjectMapper().reader(injectable).forType(Data.class).readValue(json);