2011-03-31 10 views
7

मैं किसी ऑब्जेक्ट को स्ट्रिंग करने के लिए json.stringify का उपयोग कर रहा हूं, लेकिन उद्धरण बच नहीं पाए गए हैं? क्या मैं गलत समझ रहा हूं कि उद्धरण से बचने का अनुमान है?जावास्क्रिप्ट json.stringify बच नहीं है?

संपादित करें:

कोड इस तरह दिखता है:

इस उद्धरण के किसी भी भाग निकले जा रहा है बिना टेम्पलेट में प्रदर्शित किया जाता है। उत्पादन: {"console":{"free":false}}

+0

पोस्ट कृपया अपनी समस्या कोड। –

+0

डेटा में भागने के लिए JSON नियमों का उपयोग करके, किसी भी उद्धरण से बचना चाहिए। आप किस डेटा में डाल रहे हैं? आप किस JSON बाहर निकल रहे हैं? आप जो देखने की उम्मीद करते हैं उससे अलग कैसे होता है? – Quentin

उत्तर

6

संपत्ति के नाम के आसपास उद्धरण भाग निकले होना चाहिए नहीं कर रहे हैं, केवल अंदर उद्धरण तार। आपका JSON ठीक है :)

22

यह वर्ण से बचें नहीं है, नहीं, यह है कि के लिए encodeURIComponent, और तुम, एक साथ उनका उपयोग कर सकते encodeURIComponent(JSON.stringify(obj))

+5

मानते हैं कि डेटा को यूआरआई एन्कोड किया जाना चाहिए। सवाल यह इंगित नहीं करता है, और कई एन्कोडिंग योजनाएं हैं। – Quentin

+1

यह कहने में एक त्रुटि की तरह लगता है - "यह पात्रों से नहीं बचता है, नहीं, इसके लिए एन्कोडुरिकॉम्पोनेंट है" और उन्हें संयोजन एक त्रुटि की तरह लगता है ... यदि आप JSON.stringify ('XXXXX' ') का उपयोग करते हैं - आपको (XXXXX% 22) मिलता है ... यदि आप एन्कोडुरिकॉम्पोनेंट ('XXXXX "') का उपयोग करते हैं - आपको मिलता है (XXXXX% 2522) आप दोनों क्यों करेंगे? यदि आप दोनों encodeURIComponent (JSON.stringify ('XXXXX "') का उपयोग करते हैं) - आपको मिलता है (% 22XXXXX% 2522% 22) ऐसा लगता है कि यह सुझाव देने में एक त्रुटि है और मैं इसके लिए उपयोग के बारे में सोच नहीं सकता। – KDawg

+1

धन्यवाद आप बहुत कुछ !!! यह एकदम सही समाधान है। मुझे स्टैक ओवरव्लो पर कुछ अन्य उत्तर मिलते हैं जो नौकरी नहीं करते हैं। जो मैंने वास्तव में उपयोग किया था वह स्ट्रिंगिफ़ाई को पारित एक बचाना समारोह था जो एन्कोडुरिकोम्पोनेंट – Mitzi

5

निरीक्षण करने के लिए अपमानजनक कोड के बिना के रूप में, मैं अगर कुछ और सोच रहा हूँ घटित हो रहा है। एक परीक्षण के रूप ...

<div id="test"/> 

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

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

आउटपुट: {"test":"This is \"text\"."} (< नोट बच गए दोहरे उद्धरण चिह्नों)

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

+1

पर कॉल करता है और यह हमें इतना सुनिश्चित करता है कि यह ओपी के पर्यावरण में '$' मौजूद है और उदाहरण में वर्णित तरीके से काम करता है? हम भी डीओएम के लिए एक ही प्रश्न पूछ सकते हैं। – AlicanC

0

stringify वस्तु दो बार काम कर देता है

console.log(JSON.stringify(JSON.stringify({"console":{"free":false}}))); 
// "{\"console\":{\"free\":false}}" 
संबंधित मुद्दे