2010-12-07 20 views
46

में JSON ऑब्जेक्ट की श्रेणी के लिए स्ट्रिंग 2 JSON ऑब्जेक्ट की श्रेणी को यह स्ट्रिंगConvert JSON जावास्क्रिप्ट

{"id":1,"name":"Test1"},{"id":2,"name":"Test2"} 

परिवर्तित करना चाहते हैं। मैं इसे कैसे करूं?

सबसे अच्छा

+2

यदि आप इसे JSON स्ट्रिंग के रूप में प्राप्त करते हैं, तो यह वैध JSON वैसे भी नहीं है ... आप इसे कहां से प्राप्त करते हैं? क्या आप एक और पूर्ण कोड उदाहरण पोस्ट कर सकते हैं? –

उत्तर

83

jQuery का उपयोग करना:

var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}'; 
var jsonObj = $.parseJSON('[' + str + ']'); 

jsonObj आपके JSON वस्तु है।

+0

उत्तर – Sobis

+0

@ सोबिस के लिए बहुत कुछ धन्यवाद आप उत्तर स्वीकार कर सकते थे ... –

5

संलग्न अतिरिक्त एक [ और शुरुआत और स्ट्रिंग के अंत करने के लिए ]। यह इसे एक सरणी बना देगा। फिर स्ट्रिंग को क्रमबद्ध करने के लिए eval() या कुछ सुरक्षित JSON serializer का उपयोग करें और इसे एक वास्तविक जावास्क्रिप्ट डेटाटाइप बनाएं।

आपको eval() के बजाय https://github.com/douglascrockford/JSON-js का उपयोग करना चाहिए। eval केवल तभी है जब आप कुछ त्वरित डीबगिंग/परीक्षण कर रहे हैं।

4

यदि आप jQuery का उपयोग करते हैं, तो यह parseJSON फ़ंक्शन का उपयोग किया जा सकता है और जावास्क्रिप्ट के मूल eval() फ़ंक्शन के लिए बेहतर है।

22

के रूप में लुका संकेत दिया, अपने स्ट्रिंग के लिए अतिरिक्त [] जोड़ सकते हैं और नीचे दिए गए कोड का उपयोग करें:

var myObject = eval('(' + myJSONtext + ')'); 

यह परीक्षण करने के लिए आप नीचे दिए गए स्निपेट का उपयोग कर सकते हैं।

var s =" [{'id':1,'name':'Test1'},{'id':2,'name':'Test2'}]"; 
var myObject = eval('(' + s + ')'); 
for (i in myObject) 
{ 
    alert(myObject[i]["name"]); 
} 

आशा है कि यह मदद करता है ..

+0

यह इस समाधान के साथ ठीक काम करता है – Anup

1

मुझे पता है कि बहुत से लोग उपयोग eval कह रहे हैं। eval() जेएस फ़ंक्शन कंपाइलर को कॉल करेगा, और यह सुरक्षा जोखिमों की श्रृंखला प्रदान कर सकता है। जहां संभव हो वहां इसके उपयोग से बचने के लिए सबसे अच्छा है। पार्स फ़ंक्शन एक अधिक सुरक्षित विकल्प प्रदान करता है।

13

उतना ही सरल।

var str = '{"id":1,"name":"Test1"},{"id":2,"name":"Test2"}'; 
dataObj = JSON.parse(str); 
+1

मूल प्रश्नों के बारे में टिप्पणी के अनुसार, दी गई स्ट्रिंग मान्य JSON नहीं है। –

संबंधित मुद्दे