Εδώ είναι η συμβολοσειρά μου
{
'user': {
'name': 'abc',
'fx': {
'message': {
'color': 'red'
},
'user': {
'color': 'blue'
}
}
},
'timestamp': '2013-10-04T08: 10: 41+0100',
'message': 'I'mABC..',
'nanotime': '19993363098581330'
}
Εδώ το μήνυμα περιέχει μονό εισαγωγικό, το οποίο είναι το ίδιο με το εισαγωγικό που χρησιμοποιείται στο JSON. Αυτό που κάνω είναι να συμπληρώνω μια συμβολοσειρά από τις εισόδους του χρήστη, όπως το μήνυμα. Έτσι, πρέπει να αποφύγω αυτού του είδους τα ειδικά σενάρια που καταστρέφουν τον κώδικα. Αλλά εκτός από την αντικατάσταση συμβολοσειράς, υπάρχει κάποιος άλλος τρόπος να τα κάνω να ξεφύγουν αλλά να επιτρέψω στην HTML να τα επεξεργαστεί πίσω στο σωστό μήνυμα;
Μια συμβολοσειρά JSON πρέπει να είναι σε διπλά εισαγωγικά, σύμφωνα με τις προδιαγραφές, οπότε δεν χρειάζεται να αποφύγετε το '
.
Εάν πρέπει να χρησιμοποιήσετε ειδικό χαρακτήρα στη συμβολοσειρά JSON, μπορείτε να τον αποφύγετε χρησιμοποιώντας τον χαρακτήρα \
.
Δείτε αυτόν τον κατάλογο των ειδικών χαρακτήρων που χρησιμοποιούνται στο JSON :
\b Backspace (ascii code 08)
\f Form feed (ascii code 0C)
\n New line
\r Carriage return
\t Tab
\" Double quote
\\ Backslash character
<br />,
Ωστόσο, ακόμη και αν είναι εντελώς αντίθετο με τις προδιαγραφές, ο συγγραφέας θα μπορούσε να χρησιμοποιήσει το \'
.
Αυτό είναι κακό επειδή : <ul>,
Όλοι μιλάνε για το πώς να αποφύγετε το '
σε ένα '
-παραθετικό συμβολοσειράς. Υπάρχει ένα πολύ μεγαλύτερο ζήτημα εδώ: Τα ενιαία εισαγωγικά αλφαριθμητικών δεν είναι έγκυρο JSON. Το JSON βασίζεται στη JavaScript, αλλά δεν είναι το ίδιο πράγμα. Αν γράφετε ένα λεκτικό αντικειμένου μέσα σε κώδικα JavaScript, εντάξει- αν χρειάζεστε πραγματικά JSON, πρέπει να χρησιμοποιήσετε το "
.
Με συμβολοσειρές σε διπλά εισαγωγικά, δεν θα'χρειαστεί να αποφύγετε το '
. (Και αν θέλατε ένα κυριολεκτικό "
στη συμβολοσειρά, θα χρησιμοποιούσατε \"
).
σχετικά με τη θέση του AlexB's:
\' Apostrophe or single quote
\" Double quote
Η αποφυγή μονών εισαγωγικών ισχύει μόνο σε συμβολοσειρές json με απλά εισαγωγικά
escaping double quotes is only valid in double quoted json strings
παράδειγμα:
'Bart\'s car' -> valid
'Bart says \"Hi\"' -> invalid