2014-10-07 31 views
6

JSON isteğinin içinde bir JSON dizesi oluşturmak istiyorum. İşte benim kod,JSON İçinde bir JSON

Fiddle

JS

var x = { 
    a: 1, 
    b: 'a sample text', 
}; 

var request = { 
    t: JSON.stringify(x), 
    c: 2, 
    r: 'some text' 
}; 

console.log(request); 

birisi nasıl çift tırnak kaçmak için bana yardımcı olabilir mi?

Konsol önceden

Object { 
    t: "{"a":1,"b":"a sample text"}", //This creates a problem, double quotes inside double quotes. 
    c: 2, 
    r: "some text" 
} 

teşekkür ederiz.

+1

Sorununuz yok. JSON.stringify (istek) 'yaparsanız, mükemmel bir JSON nesnesi alırsınız. Daha sonra 'JSON.parse' işlemini yapabilir ve orijinaline aynı nesneyi geri aldığınızı onaylayabilirsiniz. –

+1

Bu soru konu dışı görünüyor çünkü burada aslında bir sorun yok. –

+0

Doğru bir şekilde tırnak işaretlerinden kaçmak, string ** literals ** kullanırken bir sorundur. Onlardan kaçmak zorundasınız ki * ayrıştırıcı * string değerinin nerede bittiğini anlar. Ancak, * programsal olarak * dizesini üretiyorsunuz, ayrıştırıcı artık bu noktada yer almıyor. –

cevap

5

ile, bu JSON.stringify ed başka bir zaman olacaktır JSON isteği, kullanılan dediğimiz gibi dizgi, çıktı için çift tırnak içine alın. Bu tamamen normal ve hiçbir şey bozuldu.

JSON dizginizi bir nesneye ve bir özelliği kullanarak dönüştürebilirsiniz.

console.log(JSON.parse(request.t).b); // a sample text 
+0

console.log (JSON.parse (request.t)); Başka bir jsonun içinde bir json inşa edersen, yeterli olmalı. – webjockey

3

Sorun yok. Bu sadece ile sınırlayarak tüm dizeleri gösteren console.log sizin.

bu request nesne sadece tarayıcı konsolu size değerini gösterir yoludur geçerli sonucu

{"t":"{\"a\":1,\"b\":\"a sample text\"}","c":2,"r":"some text"}