如何使用注释反序列化为arraylist

时间:2015-02-08 18:48:09

标签: android jackson

我需要将字符串(json)反序列化为模型中的arraylist。我正在使用Jackson-Annotation库来做到这一点。有人可以帮帮我吗?

我试过这个,但不起作用:

@JsonDeserialize(as = Model.class)
private ArrayList<Model> model;

或:

@JsonDeserialize(as = ArrayModel.class) //ArrayModel extends arrayList<Model>
private ArrayList<Model> model;

样品:

public class Model extends BaseModel {

  @JsonProperty("id")
  private int id;

  @JsonDeserialize(as = ModelTwo.class)
  private ArrayList<ModelTwo> modelTwo;

  public ArrayList<ModelTwo> getModelTwo() {
    return modelTwo;
  }

  public void setModelTwo(ArrayList<ModelTwo> modelTwo) {
    this.modelTwo = modelTwo;
  }

}

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题!

您需要说出对象的类型和内容的类型。 在此之后,您需要在params上创建一个具有属性的新Json。

在第一个模型上:

@JsonProperty("property")
@JsonDeserialize(as=ArrayList.class, contentAs=ModelTwo.class)
  private List<ModelTwo> modelsTwo;

在第二个模型上:

@JsonCreator
  public ModelTwo(
      @JsonProperty("id") int id,
      @JsonProperty("name") String name) {
    this.id = id;
    this.name = name;
  }