Χρησιμοποίησα το Fastjson της Alibaba για να σειριοποιήσω και να αποσειριοποιήσω αντικείμενα, επειδή οι αρχικές μου συμβολοσειρές json ήταν όλες a, b, c... Τέτοια γράμματα αναπαρίστανται, αλλά τα σειριοποιώ σε αντικείμενα και δεν μπορώ να ορίσω τα αντικείμενα ως τέτοιες ιδιότητες χωρίς νόημα. Εδώ χρησιμοποιούνται σχολιασμοί JSONField.
@JSONField τη διαφορά μεταξύ της τοποθέτησης ενός γηπέδου και της μεθόδου get set
- πεδίο, καθορίζοντας τόσο τις λειτουργίες σειριοποίησης όσο και τις λειτουργίες αποσειριοποίησης
- Βάλτε το get, καθορίζοντας τη λειτουργία κατά τη σειριοποίηση
- set, καθορίζει τη λειτουργία κατά την αποσειριοποίηση
Αφού το χρησιμοποιήσω, μπορεί να σειριοποιηθεί κανονικά, αλλά δεν μπορεί να αποσειριοποιηθεί κανονικά, όπως φαίνεται στο παρακάτω σχήμα:
Συμβολοσειρά JSON:
{"a":"shenzhou","b":"Jing Q7UB02","c":110000,"d":"2019-01-08T17:07:04+08:00","e":120.775085,"f":30.13825,"g":77,"h":171,"i":0,"j":4951,"k":2,"l":0,"m":0,"n":4,"o":"0","p" :1}
Αιτίες σφάλματος:
Οι ιδιότητες των αντικειμένων δεν ακολουθούν την ονοματολογία της καμπούρας της Java, με όλες εκτός από την πρώτη λέξη με κεφαλαία. Για παράδειγμα
int myStudentCount; Η μεταβλητή myStudentCount είναι μόνο πεζά και το πρώτο γράμμα της λέξης μετά από αυτήν γράφεται με κεφαλαία.
Λύση:
Τροποποιήστε το όνομα του χαρακτηριστικού αντικειμένου και δημιουργήστε ξανά τη μέθοδο get/set με τον ακόλουθο κώδικα:
Για τα σωστά χαρακτηριστικά, η αποσειριοποίηση επιτυγχάνεται, όπως φαίνεται στην παρακάτω εικόνα:
|