2010-06-13 6 views
14

Firefox'un yerel JSON.parse() kullanarak değer olarak normal ifadeler içeren bazı JSON dizelerini ayrıştırmak için kullanıyorum, örneğin:JSON'daki ters eğikliklerden nasıl kurtulurum?

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

Yukarıdaki '\ d', JSON.parse() ile bir istisna atar ama eval kullanırken (ki kaçınmaya çalışıyorum) iyi çalışıyor.

İstediğim şey normal ifadede '\' korumaktır - kaçmak için başka JSON dostu bir yol var mı?

cevap

13

Böyle :) orada zaten kaçış ters eğik çizgi kaçış gerekir:

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

Burada bunu biraz test edebilirsiniz: http://jsfiddle.net/h3rzE/

+4

Teşekkür, bir çekicilik çalıştığını! Kaçışlardan kaçmak için neden ihtiyacım olduğunu açıklıyor musunuz? "\ B" den kaçmanın ayrıştırıcının amaçları için yeterli olacağını düşünürdüm ... bunun için gerekli olan sahnelerin arkasında başka bir ayrıştırma katmanı var mıdır? Ayrıca, jsfiddle bağlantısı için teşekkürler - test için http://json.parser.online.fr/ adresindeki ayrıştırıcıyı kullanıyordum, ama "\\\\ d" yi denediğimde ters eğik çizgi kaçması gerekiyor! – peteb