Šeit ir mana virkne
{
'user': {
'name': 'abc',
'fx': {
'message': {
'color': 'red'
},
'user': {
'color': 'blue'
}
}
},
'timestamp': '2013-10-04T08: 10: 41+0100',
'message': 'I'mABC..',
'nanotime': '19993363098581330'
}
Šeit ziņojumā ir viena pēdiņa, kas ir tāda pati kā JSON izmantotā pēdiņa. Es aizpildu virkni no lietotāja ievadītajiem datiem, piemēram, ziņojuma. Tāpēc man ir jāizvairās no šādiem īpašiem scenārijiem, kas lauž kodu. Bet vai ir kāds cits veids, kā tos aizstāt, izņemot virknes aizvietošanu, kā tos izdzēst, bet tomēr ļaut HTML apstrādāt tos atpakaļ uz pareizo ziņojumu?
Saskaņā ar specifikācijām JSON rindai jābūt divkārt citētai, tāpēc jums nav nepieciešams izvadīt '
.
Ja JSON rindā ir jāizmanto speciāls raksturs, to var izvairīties, izmantojot \
rakstzīmi.
Skatiet šo JSON izmantoto īpašo rakstzīmju sarakstu :
\b Backspace (ascii code 08)
\f Form feed (ascii code 0C)
\n New line
\r Carriage return
\t Tab
\" Double quote
\\ Backslash character
Tomēr, pat ja tas ir pilnīgā pretrunā ar specifikāciju, autors varētu izmantot \'
.
Tas ir pareizi, jo :
Jauniem lasītājiem, vienmēr lietojiet dubultās pēdiņas savām JSON virknēm.
Visi runā par to, kā izvairīties no '
citētā virknes literālā tekstā. Šeit ir daudz lielāka problēma: vienkotņu virknes literāli nav derīgi JSON. JSON pamatā ir JavaScript, bet tas nav tas pats. Ja rakstāt objekta literālu JavaScript kodā, viss kārtībā; ja jums patiešām nepieciešams JSON, jums jāizmanto "
.
Ja virknes ir ar dubultajiem citātiem, jums nebūs nepieciešams izvadīt '
. (Un, ja virknē vēlaties izmantot burtisku "
, izmantojiet \"
.)
par AlexB's post:
\' Apostrophe or single quote
\" Double quote
izkļūšana no vienpēdējām pēdiņām ir derīga tikai vienpēdējām json virknēm
izkļūšana no dubultajām pēdiņām ir derīga tikai divvietīgajās json virknēs
piemērs:
'Bart\'s car' -> valid
'Bart says \"Hi\"' -> invalid