JSONC
Τα αρχεία αποθήκευσης του storh είναι αντικείμενα JSON και οι αναγνώσεις δέχονται JSONC: σχόλια γραμμής, σχόλια μπλοκ και τελικά κόμματα. Έτσι, τα αρχεία εγγραφών μπορούν να ανοιχτούν και να σχολιαστούν με ασφάλεια σε έναν επεξεργαστή· εξακολουθεί να τα αναλύει το storh.
{
// Application-owned fields live under data.
"id": "018bcfe5-6800-7000-8000-000000000000",
"data": {
"title": "Home",
},
}
Οι αναγνώσεις δοκιμάζουν πρώτα αυστηρή ανάλυση json_decode και χρησιμοποιούν τον αφαιρετή JSONC μόνο αν αποτύχει, ώστε τα κανονικά αρχεία να μην επιβαρύνονται με χειρισμό σχολίων.
Τι γράφει το storh
Οι εγγραφές είναι κανονικές, συμπαγείς γραμμές JSON με αλλαγή γραμμής στο τέλος:
{"id":"018bcfe5-6800-7000-8000-000000000000","data":{"title":"Home"}}
Τα σχόλια και η προσαρμοσμένη μορφοποίηση διατηρούνται μέχρι το storh να ξαναγράψει την εγγραφή. Μια put() στο ίδιο αναγνωριστικό αντικαθιστά ολόκληρο το αρχείο με κανονική έξοδο, επομένως αντιμετωπίζετε τα σχόλια ως πρόχειρες σημειώσεις και όχι ως μόνιμα μεταδεδομένα. Οι μόνιμες πληροφορίες ανήκουν στο data.
Η κωδικοποίηση διατηρεί τους χαρακτήρες Unicode και τις κάθετους χωρίς διαφυγή, και διατηρεί τα μηδενικά κλάσματα κινητής υποδιαστολής (1.0 παραμένει 1.0), ώστε η αποκωδικοποίηση και η επανακωδικοποίηση των ίδιων δεδομένων να δίνουν τα ίδια byte. Τα δηλωτικά ευρετηρίων και τα άλλα εσωτερικά αρχεία μεταδεδομένων είναι αντικείμενα JSON με την ίδια ανοχή κατά την ανάγνωση.
Το Jsonc::decode_object() απορρίπτει έγγραφα που δεν είναι αντικείμενα και κακοσχηματισμένη είσοδο.
Τα Jsonc::encode_object() και Jsonc::encode_compact_object() γράφουν πίνακες ως έγγραφα αντικειμένων.