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

How to deserialize to arraylist with annotations

我需要将字符串 (json) 反序列化为模型中的数组列表。我正在使用 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;
  }

}

我已经解决了!

你需要说出对象的类型和内容的类型。 在此之后,您需要创建一个新的 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;
  }