ऑब्जेक्ट को JSON स्ट्रिंग में बदलें


122

jQuery.parseJSON('{"name":"John"}')स्ट्रिंग प्रतिनिधित्व को ऑब्जेक्ट में परिवर्तित करता है, लेकिन मैं रिवर्स चाहता हूं। ऑब्जेक्ट को JSON स्ट्रिंग में बदलना है मुझे एक लिंक मिल गया है http://www.devcurry.com/2010/03/convert-javascript-object-to-json.html, लेकिन इसके लिए json2.js होना आवश्यक है jQuery एक देशी है ऐसा करने की विधि?


जवाबों:


188

देशी ब्राउज़र विधि को कॉल करने से पहले jQuery केवल कुछ regexp जाँच करता है window.JSON.parse()। यदि वह उपलब्ध नहीं है, तो यह जावास्क्रिप्ट ऑब्जेक्ट बनाने के लिए eval()या अधिक सटीक रूप new Function()से उपयोग करता है ।

के विपरीत JSON.parse()है JSON.stringify()जो एक स्ट्रिंग में एक जावास्क्रिप्ट वस्तु serializes। jQuery कि के लिए अपनी खुद की सुविधा उपलब्ध नहीं है, तो आप संस्करण में निर्मित या ब्राउज़र का उपयोग करना json2.jsसे http://www.json.org

JSON.stringify() सभी प्रमुख ब्राउज़रों में उपलब्ध है, लेकिन पुराने ब्राउज़रों के साथ संगत होने के लिए आपको अभी भी उस कमबैक की आवश्यकता है।


4
यह मददगार हो सकता है:var theObject = (typeof data == "string") ? jQuery.parseJSON(data) : data;
roberthuttinger 19

2
@tekretic: मुझे आशा है कि आप ट्रोल कर रहे हैं। Chrome JSONदिन के बाद से होस्ट ऑब्जेक्ट को लागू करता है
jAndy

5
@jAndy: ओह वाह, सॉरी। ट्रोलिंग नहीं है लेकिन ओह इतना गलत है। मूल JSON समर्थन को 2009 के मध्य में WebKit में जोड़ा गया , जिससे यह क्रोम 3.0 के बाद से समर्थित हो गया। मेरी पिछली, टोटल गलत टिप्पणी, इस पुराने सवाल के आधे हिस्से पर आधारित थी, जो उस सीएमएस के साथ संयुक्त रूप से काम कर रहा हूं, जो इस समय काम कर रहा है, जो वास्तव में विंडो को बदल देता है। जेएसएन अपने स्वयं के पुस्तकालय के साथ है, जिसका अर्थ JSON.stringify()परिभाषित नहीं है। सभी मामलों में एक असफल।
मोलोमबी


1
@jAndy: मुझे भ्रमित मत करो; : JSON.stringify एक वस्तु को 'क्रमबद्ध करता है', कृपया कहें कि इसकी सिर्फ एक गलती है
आधी रात

12

डिबगिंग प्रयोजनों के लिए भी उपयोगी Object.toSource () है, जहाँ आप ऑब्जेक्ट और इसके गुणों को डिबगिंग उद्देश्यों के लिए दिखाना चाहते हैं। यह एक सामान्य जावास्क्रिप्ट (jQuery नहीं) फ़ंक्शन है, हालांकि यह केवल "आधुनिक" ब्राउज़रों में काम करता है।


4

जावास्क्रिप्ट ऑब्जेक्ट को जोंस डेटा में कन्वर्ट करें

$("form").submit(function(event){
  event.preventDefault();
  var formData = $("form").serializeArray(); // Create array of object
  var jsonConvertedData = JSON.stringify(formData);  // Convert to json
  consol.log(jsonConvertedData);
});

आप http://jsonlint.com का उपयोग करके जसन डेटा को मान्य कर सकते हैं


2

आप उत्कृष्ट jquery-Json प्लगइन का उपयोग कर सकते हैं:

http://code.google.com/p/jquery-json/

Json ऑब्जेक्ट्स से परिवर्तित करना आसान बनाता है।


2
कृपया ऐड-ऑन लॉजिक लाइब्रेरी पर SPL विधियों की अनुशंसा करें।
डेविड जे एडी

2
एसपीएल = स्टैंडर्ड पीएचपी लाइब्रेरी। इस मामले में अनुमान एसजेएल (मानक जावास्क्रिप्ट पुस्तकालय) होगा।
डेविड जे एडी

3
सवाल jQuery और जावास्क्रिप्ट के बारे में है। इसका PHP, PHP पुस्तकालयों या SPL से कोई लेना-देना नहीं है।
जॉर्ज फिलिप्पाकोस

3
मानक पुस्तकालय मानक पुस्तकालय हैं; भाषा पर कोई फर्क नहीं पड़ता। मेरी बात यह है कि एक समाधान की सिफारिश करना बेहतर है जो भाषा को 'इस प्लगइन का उपयोग करें' सिंड्रोम सिखाता है।
डेविड जे एडी

1
वास्तव में, पहिया को क्यों प्रबल किया जाए ... एक 'प्लगइन' पर भाषा की मानक क्षमताओं का उपयोग करें लेकिन मैं पचाता हूं।
डेविड जे एडी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.