Rumah >Java >javaTutorial >Bagaimana Mengendalikan Nama Harta Berbeza untuk Pensirilan JSON dan Penyahserialisasian di Jackson?
Di Jackson, nama mungkin berbeza untuk sesuatu harta semasa pensirilan dan penyahseririan. Mari kita pertimbangkan contoh dengan kelas Koordinat berikut:
<code class="java">class Coordinates { int red; }</code>
Kami mahukan format JSON berikut untuk penyahsirilan:
<code class="json">{ "red": 12 }</code>
Walau bagaimanapun, untuk bersiri, kami memerlukan format berikut:
<code class="json">{ "r": 12 }</code>
Penyelesaian:
Penyelesaian terletak pada penggunaan anotasi @JsonProperty pada kedua-dua kaedah getter dan setter, memastikan ia mempunyai nama yang berbeza:
<code class="java">class Coordinates { int red; @JsonProperty("r") public byte getRed() { return red; } @JsonProperty("red") public void setRed(byte red) { this.red = red; } }</code>
Perhatikan bahawa nama kaedah mestilah berbeza. Jackson mentafsirkannya sebagai rujukan kepada sifat yang berbeza, bukannya sifat yang sama dengan nama yang berbeza.
Nota Tambahan:
Kod Ujian:
<code class="java">Coordinates c = new Coordinates(); c.setRed((byte) 5); ObjectMapper mapper = new ObjectMapper(); System.out.println("Serialization: " + mapper.writeValueAsString(c)); Coordinates r = mapper.readValue("{\"red\":25}",Coordinates.class); System.out.println("Deserialization: " + r.getR());</code>
Output:
Serialization: {"r":5} Deserialization: 25
Atas ialah kandungan terperinci Bagaimana Mengendalikan Nama Harta Berbeza untuk Pensirilan JSON dan Penyahserialisasian di Jackson?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!