2016-03-22 10 views
0

içinde JSON için dize dönüştürme mümkün değil JSON biçiminde bir dize. Yinelemeye çalışıyorum. String'in JSON olup olmadığını doğruladım. Bu iyi. Ama, yinelemeye çalıştığımda, bana hata veriyor.Javascript

İşte İşte benim

var string = '[{"id":7,"userId":"123","courseId":"C4","courseValue":"{\"color\": \"blue\",\"value\": \"#f00\"}"},{"id":8,"userId":"123","courseId":"C5","courseValue":"{\"color\": \"green\",\"value\": \"#f00\"}"}]'; 

olan bazı JSON almış ve değişmez bir JavaScript dize yapmak için denemek için çevresinde ' sardırırsın

http://jsfiddle.net/hLkUz/40/

cevap

0

çalışır. Düzeltilmiş json dize

var string = '[{"id":7,"userId":"123","courseId":"C4","courseValue":{\"color\": \"blue\",\"value\": \"#f00\"}},{"id":8,"userId":"123","courseId":"C5","courseValue":{\"color\": \"green\",\"value\": \"#f00\"}}]'; 
+0

Hey Sridhar'a git, sorun neydi? – Syed

+0

, courseValue'yi gerekli olmayan çift tırnak içine alıyorsunuz. CourseValue i.e "courseValue" dosyasındaki çift tırnakları kaldırdım: "courseValue" yerine {\ "color \": "{\" color \ "... –

+0

bunu bana dövdün, ben istemediğim kaçışla meşgul oldum." –

1

keman olduğunu.

Bazı karakterler, JavaScript dizesi değişmezlerinde (bir çıkış dizisini başlatan \ gibi) özel anlamlara sahiptir. Dize içinde kaçmayı başaramadınız. Sonuç

, örnek almalı: literal JavaScript dizesinin parçası olarak çözümlenir

"{\"color\":… 

... dönüşür: geçerli JSON değil

"{"color":… 

....

JavaScript dizesi değişmezi için özel karakterlerden kurtulmanız gerekir.

Daha iyisi, JSON'unuzu yeniden yapılandırın, böylece JSON olarak kodlanmış değerler içermez. Bir nesneyi temsil eden JSON içeren bir dize yerine bir nesne kullanın.

+0

şimdi bu dize ile ne yapmalıyım? Aynı JSON nesnesini alıcım – Syed

+0

'a alacağım Bu dizenin doğru yapısı ne olurdu? – Syed

-1

CourseValue içinde JSON'dan kaçmak istediğinizden emin değilim. Ancak yuvalanmış nesnelerin kaçması sorun gibi görünüyor. Bu Nasıl değerlerinde istenmeyen çift dize yaşıyorsanız http://jsbin.com/mekiwalidu/edit?js,console,output

var string = '[{"id":7,"userId":"123","courseId":"C4","courseValue":{"color": "blue","value": "#f00"}},{"id":8,"userId":"123","courseId":"C5","courseValue":{"color": "green","value": "#f00"}}]'; 

var obj = JSON.parse(string); 
console.log(obj); 
+1

Lütfen aşağı çekmek için kodu buraya yerleştirin. Linkler – mplungjan

0

bu deneyin buradadır: " nesneyi sarın ne de ondan kaçmak gerek yoktur

var string = '[{"id":7,"userId":"123","courseId":"C4","courseValue":{"color": "blue","value": "#f00"}},{"id":8,"userId":"123","courseId":"C5","courseValue":{"color": "green","value": "#f00"}}]'; 
0

bu.

Tek ihtiyacın şudur:

var string = '[{"id":7,"userId":"123","courseId":"C4","courseValue":{"color": "blue","value": "#f00"}},{"id":8,"userId":"123","courseId":"C5","courseValue":{"color": "green","value": "#f00"}}]'; 

Fiddle