τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Συμβουλή: Μετά τη σύνταξη του άρθρου, ο πίνακας περιεχομένων μπορεί να δημιουργηθεί αυτόματα Για τον τρόπο δημιουργίας του, ανατρέξτε στο έγγραφο βοήθειας στα δεξιά.
@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>
Ο σχολιασμός @JSONproperty χρησιμοποιείται γιαΓνωρίσματαπάνω από
Μπορεί να χρησιμοποιηθεί σχολιασμός @JSONFieldλήψη, ρύθμιση και ιδιότητεςπάνω από
Ο σχολιασμός @JSONField είναι πιο απλός στη χρήση Η προεπιλεγμένη τιμή του σχολιασμού είναι η ίδια με το όνομα της ιδιότητας, ενώ το @JsonProperty απαιτεί τον μη αυτόματο καθορισμό του ονόματος της ιδιότητας.
Ο σχολιασμός @JSONField υποστηρίζει περισσότερες επιλογές αντιστοίχισης χαρακτηριστικών, όπως η μορφή ημερομηνίας κατά τη σειριοποίηση, ο τρόπος χειρισμού των μηδενικών τιμών κ.λπ.
Η απόδοση του σχολιασμού @JSONField είναι ταχύτερη επειδή το ίδιο το fastjson είναι μια βιβλιοθήκη επεξεργασίας JSON υψηλής απόδοσης
Όταν χρησιμοποιείτε το πλαίσιο Jackson, μπορείτε να χρησιμοποιήσετε μόνο τον σχολιασμό @JsonProperty και δεν μπορείτε να χρησιμοποιήσετε τον σχολιασμό @JSONField.
Εάν χρησιμοποιείτε ένα νέοέργο Springboot, η προεπιλογή είναι η σειριοποίηση Jackson, απλώς χρησιμοποιήστε σχολιασμούς απευθείας στις ιδιότητες.
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>版本号</version>
</dependency>
Κλάση οντότητας: 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;
}
Μέθοδοι δοκιμής:
@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());
}
Αποτελέσματα δοκιμής:
{"sex":"man","age":22,"JsonPropertyName":"zhangsan"}
User [name=zhangsan, sex=man, age=22]
Μπορεί να φανεί ότι μετά τη μετατροπή του bean σε μια συμβολοσειρά json, το όνομα της ιδιότητας bean που σχολιάζεται με @JsonProperty έχει αντικατασταθεί με το καθορισμένο όνομα ιδιότητας: JsonPropertyName;
Αφού η συμβολοσειρά json μετατραπεί σε bean, το όνομα ιδιότητας που καθορίζεται από τον σχολιασμό @JsonProperty έχει αντικατασταθεί από το όνομα ιδιότητας bean: name;
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>版本号</version>
</dependency>
Κλάση οντότητας: 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;
}
Μέθοδοι δοκιμής:
@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());
}
Αποτελέσματα δοκιμής:
{"JSONFieldName":"zhangsan","age":22,"sex":"man"}
User [name=zhangsan, sex=man, age=22]
Το χαρακτηριστικό format μπορεί να χρησιμοποιηθεί για τον καθορισμό της μορφής των χαρακτηριστικών τύπου ημερομηνίας και της μορφής μετατροπής αριθμητικών τύπων σε τύπους συμβολοσειρών.
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;
}
Στο παραπάνω παράδειγμα, το χαρακτηριστικό userId εξαιρείται από τη σειριοποίηση χρησιμοποιώντας τον σχολιασμό @JSONField
public class User {
private int userId;
private String name;
@JSONField(deserialize = false)
private int age;
}
Στο παραπάνω παράδειγμα, η ιδιότητα age εξαιρείται από την αφαίρεση με χρήση του σχολιασμού @JSONField
Η σειρά των χαρακτηριστικών μπορεί να καθοριστεί μέσω του τακτικού χαρακτηριστικού
public class User {
@JSONField(ordinal = 2)
private String name;
@JSONField(ordinal = 1)
private int age;
}
Στο παραπάνω παράδειγμα, ο σχολιασμός @JSONField χρησιμοποιείται για να ορίσει ότι η σειρά του χαρακτηριστικού ηλικία είναι 1 και η σειρά του χαρακτηριστικού name είναι 2.
Το χαρακτηριστικό defaultValue μπορεί να χρησιμοποιηθεί για τον καθορισμό της προεπιλεγμένης τιμής του χαρακτηριστικού στο αντικείμενο Java.
public class User {
@JSONField(defaultValue = "0")
private int userId;
@JSONField(defaultValue = "N/A")
private String name;
private int age;
}
Στο παραπάνω παράδειγμα, ο σχολιασμός @JSONField χρησιμοποιείται για να καθορίσει ότι η προεπιλεγμένη τιμή του χαρακτηριστικού userId είναι 0 και η προεπιλεγμένη τιμή του χαρακτηριστικού name είναι "N/A"
public class User {
private int userId;
@JSONField(type = FieldType.STRING)
private int age;
}
Στο παραπάνω παράδειγμα, ο σχολιασμός @JSONField χρησιμοποιείται για να καθορίσει τον τύπο του χαρακτηριστικού ηλικία ως τύπο συμβολοσειράς.