2011-03-31 24 views
7

Bir nesneyi dizgilemek için json.stringify kullanıyorum, ancak tırnaklar kaçmadı mı? Alıntıdan kaçmak için yanlış olduğunu anladım mı?javascript json.stringify kaçmıyor mu?

Düzenleme:

kod şuna benzer: Bu tırnak herhangi kaçan olmadan şablonuna çıkarılmaktadır

. çıkışı: {"console":{"free":false}}

+0

senin sorunun kodunu gönderin. –

+0

Verilerde, kaçma için JSON kurallarını kullanan herhangi bir alıntıdan kaçmalı. Hangi verileri kullanıyorsunuz? Ne JSON çıkıyorsun? Bu, görmeyi beklediğinizden nasıl farklı? – Quentin

cevap

6

tırnak kaçmış olması gerekiyordu değildir {"test":"This is \"text\"."} (< Not kaçan çift tırnak), içeride tırnak yalnızca Teller. JSON gayet nesne iki kez hüner yok stringify :)

22

Hiç, bunun için encodeURIComponent var, karakterlerden kurtulmak etmez ve incelemek için kusurlu kodu olmadan encodeURIComponent(JSON.stringify(obj))

+5

Verilerin URI kodlanmış olması gerektiğini varsayarsak. Soru, bunu göstermez ve birçok kodlama şeması vardır. – Quentin

+1

Söylenecek bir hata gibi görünüyor - "Bu karakterlerden kaçmıyor, hayır, bunun için encodeURIComponent var" ve bunları birleştiren bir HATA gibi görünüyor ... JSON.stringify ('XXXXX' ') kullanırsanız - (XXXXX% 22) alırsınız ... Eğer encodeURIComponent ('XXXXX' ') kullanırsanız - alırsınız (XXXXX% 2522) Neden ikisini birden yaparsınız? Hem encodeURIComponent (JSON.stringify ('XXXXX' ')) kullanırsanız - alırsınız (% 22XXXXX% 2522% 22) Bunu önermek bir hata gibi gözüküyor ve bunun için bir kullanım düşünemiyorum – KDawg

+1

Bu çok mükemmel bir çözüm ... Bu, iş yapmayan StackOverFlow'da başka cevaplar buldum.Çünkü aslında kullanılan kod çözme işlevini çağıran StringdeURIComponent – Mitzi

5

olduğu gibi onları bir arada kullanabilir, ben başka bir şey olmadığını merak ediyorum oluyor. Bir testte olarak ...

<div id="test"/> 

var ex = {'test':'This is "text".'}; 

$('#test').text(JSON.stringify(ex)); 

Çıkışlar: özellik adları etrafında

http://jsfiddle.net/userdude/YVGbH/

+1

çağrılarına aktarılan bir kaçış işlevi oldu. “$' OP'nin ortamında var ve örnekte tarif ettiği şekilde çalışıyor mu? Aynı soruyu DOM için de sorabiliriz. – AlicanC

0

console.log(JSON.stringify(JSON.stringify({"console":{"free":false}}))); 
// "{\"console\":{\"free\":false}}" 
İlgili konular