2010-06-13 16 views
14

Używam natywną JSON.parse Firefoksa(), aby analizować pewne ciągi JSON, które zawierają wyrażenia regularne jako wartości, na przykład:Jak mogę uniknąć ukośników w JSON?

var test = JSON.parse('{"regex":"/\\d+/"}'); 

oznaczenie „\ d” w powyższym zgłasza wyjątek z JSON.parse (), ale działa dobrze, gdy używam eval (którego staram się unikać).

Co chcę zachować "\" w regex - czy jest jakiś inny sposób na ucieczkę JSON-friendly?

Odpowiedz

13

Musisz uciec backslashy ewakuacyjnych już tam :) tak:

var test = JSON.parse('{"regex":"/\\\\d+/"}'); 

można go przetestować trochę tutaj: http://jsfiddle.net/h3rzE/

+4

Dzięki, że działa urok! Czy mógłbyś wytłumaczyć, dlaczego muszę uciec z ucieczki? Pomyślałbym, że ucieczka z "\ b" wystarczyłaby dla parsera ... czy istnieje kolejna warstwa analizy, która wymaga tego? Dziękuję również za link jsfiddle - do testowania użyłem parsera na http://json.parser.online.fr/, ale kiedy spróbowałem "\\\\ d", powiedział mi, że jeden z backsliska należy uciec! – peteb

Powiązane problemy