चूंकि आपकी स्ट्रिंग खराब है JSON, एक JSON पार्सर इसे ठीक से पार्स नहीं कर सकता है और यहां तक कि eval() भी एक त्रुटि फेंक देगा। यह एक ऐरे भी नहीं है बल्कि हैश मैप या बस एक ऑब्जेक्ट शाब्दिक (विकृत) है। यदि ऑब्जेक्ट शाब्दिक में केवल संख्या और स्ट्रिंग मान होंगे (और कोई बच्चा ऑब्जेक्ट/सरणी नहीं) तो आप निम्न कोड का उपयोग कर सकते हैं।
function malformedJSON2Array (tar) {
var arr = [];
tar = tar.replace(/^\{|\}$/g,'').split(',');
for(var i=0,cur,pair;cur=tar[i];i++){
arr[i] = {};
pair = cur.split(':');
arr[i][pair[0]] = /^\d*$/.test(pair[1]) ? +pair[1] : pair[1];
}
return arr;
}
malformedJSON2Array("{a:12, b:c, foo:bar}");
// result -> [{a:12},{b:'c'},{foo:'bar'}]
वह कोड आपकी स्ट्रिंग को ऑब्जेक्ट्स (बहुवचन) के ऐरे में बदल देगा।
यदि फिर भी आप वास्तव में एक HashMap (साहचर्य सरणी) और नहीं एक सरणी चाहता था, निम्नलिखित कोड का उपयोग करें: जब आप नेस्टिंग वस्तुओं और सरणियों शुरू
function malformedJSON2Object(tar) {
var obj = {};
tar = tar.replace(/^\{|\}$/g,'').split(',');
for(var i=0,cur,pair;cur=tar[i];i++){
pair = cur.split(':');
obj[pair[0]] = /^\d*$/.test(pair[1]) ? +pair[1] : pair[1];
}
return obj;
}
malformedJSON2Object("{a:12, b:c, foo:bar}");
// result -> {a:12,b:'c',foo:'bar'}
ऊपर कोड एक बहुत अधिक जटिल हो जाएगा। मूल रूप से आपको विकृत JSON का समर्थन करने के लिए JSON.js और JSON2.js को फिर से लिखना होगा।
यह भी निम्न विकल्प पर विचार करें, जो अभी भी खराब है, मैं स्वीकार करता हूं, लेकिन एचटीएमएल टैग की विशेषता के अंदर JSON चिपकाने के बाद मामूली बेहतर है।
<div id="DATA001">bla</div>
<!-- namespacing your data is even better! -->
<script>var DATA001 = {a:12,b:"c",foo:"bar"};</script>
मैं तुम्हें संभालने हूँ स्ट्रिंग में उद्धरण चिह्न छोड़ देते हैं क्योंकि आप इसे एक HTML टैग की विशेषता के अंदर रखा था और उद्धरण से बचने के लिए नहीं चाहता था।
यह सरणी कैसा दिखाई देगी? –
जो JSON की तरह दिखता है। यह पहले से ही एक सहयोगी सरणी की तरह है और इस तरह से पहुंचा जा सकता है। क्या आप इससे जागरुक हैं? [यहां देखें] (http://www.hunlock.com/blogs/Mastering_JSON_ (_JavaScript_Object_Notation_% 29) – BalusC
यह एक सरणी नहीं है। यह एक स्ट्रिंग है। मुझे यह टैग स्ट्रिंग से यह स्ट्रिंग मिलती है। और मैं इसे कन्वर्ट करना चाहता हूं एक सरणी के लिए स्ट्रिंग। – Zeck