Mam element z atrybutem rel który zawiera ciąg JSON, coś jak:wartość JSON z apostrof
rel='{"id":"#id#","name":"#name#"}'
Następnie w kodzie JavaScript, używam $.parseJSON
analizować te dane. Działa to poprawnie - oprócz przypadków, w których name
zawiera apostrof. Próbowałem używać jsStringFormat
, coldfusion replace
, który zastępuje wszystkie pojedyncze cudzysłowy z unikalnymi pojedynczymi cudzysłowami itp., Ale nie mogę znaleźć poprawnego rozwiązania. Wiem, że to najprawdopodobniej proste, ale w jaki sposób uzyskać poprawne przekazywanie wartości za pomocą apostrofów/pojedynczych cudzysłowów za pomocą json?
Ten kod działa, ale eliminuje apostrof które chciałbym zachować:
rel='{"id":"#id#","name":"#replace(name,"'","","all")#"}'
To nie działa:
rel='{"id":"#id#","name":"#replace(name,"'","\'","all")#"}'
Ani też:
rel='{"id":"#id#","name":"#replace(name,"'","\\\'","all")#"}'
Or :
rel='{"id":"#id#","name":"#replace(name,"'",""","all")#"}'
Lub:
rel='{"id":"#id#","name":"#jsStringFormat(name)#"}'
Aby poprawnie uniknąć podwójnych cudzysłowów w atrybutach HTML, należy użyć '"' – cspolton
Dlaczego nie można po prostu użyć [serializeJson] (http://cfdocs.org/serializeJson)? –