2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Vihje: Kun artikkeli on kirjoitettu, sisällysluettelo voidaan luoda automaattisesti. Katso oikealla olevasta ohjeasiakirjasta, miten se luodaan.
@JsonProperty(value = "isReceipt")
public boolean isReceipt() {
return isReceipt;
}
@JsonProperty(value = "isExamine")
public boolean isExamine() {
return isExamine;
}
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>版本号</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>版本号</version>
</dependency>
@JSON-ominaisuusmerkintää käytetäänAttribuutitedellä
@JSONField-merkintää voidaan käyttäähanki, aseta ja ominaisuuksiaedellä
@JSONField-merkintä on yksinkertaisempi käyttää. Huomautuksen oletusarvo on sama kuin ominaisuuden nimi, kun taas @JsonProperty edellyttää ominaisuuden nimen määrittämistä manuaalisesti.
@JSONField-merkintä tukee enemmän attribuuttien kartoitusvaihtoehtoja, kuten päivämäärämuotoa sarjoittaessa, nolla-arvojen käsittelyä jne.
@JSONField-merkinnän suorituskyky on nopeampi, koska fastjson itsessään on korkean suorituskyvyn JSON-käsittelykirjasto
Kun käytät Jackson-kehystä, voit käyttää vain @JsonProperty-merkintää etkä @JSONField-merkintää.
Jos käytät uuttaspringboot projekti, oletuksena on Jackson-serialisointi, käytä vain huomautuksia suoraan ominaisuuksissa.
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>版本号</version>
</dependency>
Entiteettiluokka: User.java
import com.fasterxml.jackson.annotation.JsonProperty;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
@JsonProperty("JsonPropertyName")
private String name;
private String sex;
private Integer age;
}
Testausmenetelmät:
@Test
public void testJsonProperty() throws IOException{
//bean ---> json
User user=new User("zhangsan","man",22);
System.out.println(new ObjectMapper().writeValueAsString(user));
//json ---> bean
String str="{"sex":"man","age":22,"JsonPropertyName":"zhangsan"}";
System.out.println(new ObjectMapper().readValue(str, User.class).toString());
}
Testitulokset:
{"sex":"man","age":22,"JsonPropertyName":"zhangsan"}
User [name=zhangsan, sex=man, age=22]
Voidaan nähdä, että sen jälkeen, kun bean on muunnettu json-merkkijonoksi, @JsonProperty-merkinnällä varustettu papuominaisuuden nimi on korvattu määritetyllä ominaisuuden nimellä: JsonPropertyName;
Kun json-merkkijono on muunnettu papuksi, @JsonProperty-merkinnän määrittämä ominaisuuden nimi on korvattu papuominaisuuden nimellä: name;
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>版本号</version>
</dependency>
Entiteettiluokka: User.java
import com.alibaba.fastjson.annotation.JSONField;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
@JSONField(name="JSONFieldName")
private String name;
private String sex;
private Integer age;
}
Testausmenetelmät:
@Test
public void testSONField(){
//bean ---> json
User user=new User("zhangsan","man",22);
System.out.println(JSON.toJSONString(user));
//json ---> bean
String str="{"JSONFieldName":"zhangsan","age":22,"sex":"man"}";
System.out.println(JSON.parseObject(str, User.class).toString());
}
Testitulokset:
{"JSONFieldName":"zhangsan","age":22,"sex":"man"}
User [name=zhangsan, sex=man, age=22]
Format-attribuutilla voidaan määrittää päivämäärätyyppiattribuuttien muoto ja muoto, jolla numeeriset tyypit muunnetaan merkkijonotyypeiksi.
public class User {
private String name;
private int age;
@JSONField(format = "yyyy-MM-dd")
private Date birthday;
@JSONField(format = "#,###.00")
private double salary;
}
public class User {
@JSONField(serialize = false)
private int userId;
private String name;
private int age;
}
Yllä olevassa esimerkissä userId-attribuutti jätetään serialoinnin ulkopuolelle @JSONField-merkinnällä
public class User {
private int userId;
private String name;
@JSONField(deserialize = false)
private int age;
}
Yllä olevassa esimerkissä ikä-ominaisuus suljetaan pois sarjoituksesta @JSONField-merkinnän avulla
Attribuuttien järjestys voidaan määrittää ordinaal-attribuutilla
public class User {
@JSONField(ordinal = 2)
private String name;
@JSONField(ordinal = 1)
private int age;
}
Yllä olevassa esimerkissä @JSONField-merkintää käytetään määrittämään ikä-attribuutin järjestys 1 ja name-attribuutin järjestys 2.
defaultValue-attribuutilla voidaan määrittää attribuutin oletusarvo Java-objektissa.
public class User {
@JSONField(defaultValue = "0")
private int userId;
@JSONField(defaultValue = "N/A")
private String name;
private int age;
}
Yllä olevassa esimerkissä @JSONField-merkintää käytetään määrittämään, että userId-attribuutin oletusarvo on 0 ja name-attribuutin oletusarvo on "N/A".
public class User {
private int userId;
@JSONField(type = FieldType.STRING)
private int age;
}
Yllä olevassa esimerkissä @JSONField-merkintää käytetään määrittämään ikä-attribuutin tyyppi merkkijonotyypiksi.