0

我正在尝试使用 ModelMapper 来映射以下 json,如此处所述http://modelmapper.org/user-manual/gson-integration/但我得到了 NullPointerException 并且我不知道出了什么问题。请问有什么提示吗?

{"a": "aaa", "b": [{"c": "ccc"}]}   

public class Foo {
  private String a;
  private ArrayList<Bar> b;
}



public class Bar {
  private String c;
}

ModelMapper mapper = new ModelMapper();
mapper.getConfiguration().addValueReader(new JsonElementValueReader());
JsonElement responseElement = new JsonParser().parse(json);
Foo foo = mapper.map(responseElement, Foo.class);
4

1 回答 1

1

在审查了您的意思和您在问题中的评论之后,这很可能是他们实施中的一个错误。ValueReader索赔的 javadoc

返回源对象的所有成员名称,否则null如果源没有成员。

但是,使用此方法的唯一代码PropertyInfoSetResolver#resolveAccessors(...)不检查 是否存在null。JSON 中的成员名称仅对对象有意义,但在这里,您有一个 JSON 数组。这就是它失败的原因。

据我所知,代码既不检查null也不检查source没有成员的类型。我认为这是一个错误。通过将任何字段(和相应的 JSON)替换为数组类型,该错误很容易从示例示例中重现。您可能想联系开发人员或更改库。

于 2014-09-20T17:17:14.710 回答