2017-09-19 13 views
0

私は、JSONの構造以下を達成したいと思います:"lenovo""apple"キーのジャクソン:オブジェクトをキーでラップする方法は、シリアル化されたオブジェクトのプロパティの1つですか?

"laptops":[ 
     { 
     "apple":{ 
      "serial":"value", 
      "manufacture_date":"some_date" 
     }, 
     "lenovo":{ 
      "serial":"value", 
      "manufacture_date":"some_date" 
     } 
     } 
    ] 

値は、まったく同じ構造を持つことになります。さまざまな種類のラップトップに追加のプロパティはありません。これがあると、タイプ階層を実装する必要はありません。そして、もう一つPOJOはそれを行う必要があります:あなたはLaptop POJOで見たよう

public final class Laptop { 

    private String serial; 

    @JsonProperty(name="manufacture_date") 
    private String manufactureDate; 

    private String make; 

    public Laptop() {} 

    public String getSerial(){ 
    return serial; 
} 

    public setSerial(String serial){ 
    this.serial = serial; 
    } 

    public String getManufactureDate(){ 
    return manufactureDate; 
    } 

    public setManufactureDate(String manufactureDate){ 
    this.manufactureDate = manufactureDate; 
    } 

    public String getMake(){ 
    return make; 
    } 

    public setMake(String make){ 
    this.make = make; 
    } 

} 

を私はmakeプロパティを導入していますが、私はそれがキーと値のペアにシリアル化する必要はありません。代わりに、私はmake値をLaptopオブジェクトのラッパーとして自分自身にする必要があります。

どのように達成できますか?

答えて

2

Map<String, Laptop>を使用してください。ここでのキーは、各ノートパソコンの製造元です。また、makeフィールドには@JsonIgnoreと注釈を付けてシリアル化しないようにしてください。

関連する問題