javascript - JS ऑब्जेक्ट को JSON स्ट्रिंग में कनवर्ट करें




(20)

अद्यतन / बेहतर तरीका देखें:

17 मई, 2008 को अपडेट करें: छोटे सेनेटिज़र को ऑब्जेक्ट-विधि में जोड़ा गया। अब toObject () स्ट्रिंग को नहीं मिटाएगा () स्ट्रिंग अगर इसमें कोई दुर्भावनापूर्ण कोड पाता है। और भी सुरक्षा के लिए: फ़ंक्शन ध्वज को सत्य में सेट न करें।

जेएसओएन अवधारणा के पिता डगलस क्रॉकफोर्ड ने जावास्क्रिप्ट के लिए पहले स्ट्रिंगफायरों में से एक लिखा था। बाद में ट्रिम पथ पर स्टीव येन ने एक अच्छा सुधार संस्करण लिखा जो मैंने कुछ समय के लिए उपयोग किया है। यह स्टीव के संस्करण में मेरे बदलाव है जो मैं आपके साथ साझा करना चाहता हूं। असल में वे स्ट्रिंगफायर बनाने की मेरी इच्छा से निकल गए:

• handle and restore cyclical references  
• include the JavaScript code for functions/methods (as an option)  
• exclude object members from Object.prototype if needed.

अगर मैंने जेएस में किसी ऑब्जेक्ट को परिभाषित किया है:

var j={"name":"binchen"};

मैं ऑब्जेक्ट को JSON में कैसे परिवर्तित कर सकता हूं? आउटपुट स्ट्रिंग होना चाहिए:

'{"name":"binchen"}'

मुझे स्मृति से बाहर निकलने के साथ समस्याएं आ रही थीं और अन्य समाधान काम नहीं कर रहे थे (कम से कम मैं उन्हें काम नहीं कर सका), जब मैं इस धागे पर ठोकर खा रहा था। रोहित कुमार के लिए धन्यवाद, मैं इसे अपने बहुत बड़े JSON ऑब्जेक्ट के माध्यम से दुर्घटनाग्रस्त होने से रोकने के लिए बस शुरू करता हूं

var j = MyObject;
var myObjectStringify = "{\"MyObject\":[";
var last = j.length
var count = 0;
for (x in j) {
    MyObjectStringify += JSON.stringify(j[x]);
    count++;
    if (count < last)
        MyObjectStringify += ",";
}
MyObjectStringify += "]}";

MyObjectStringify आपको अपनी स्ट्रिंग प्रस्तुति प्रदान करेगा (जैसा कि इस धागे में अन्य बार उल्लिखित है) सिवाय इसके कि यदि आपके पास एक बड़ी वस्तु है, तो यह भी काम करना चाहिए - बस सुनिश्चित करें कि आप इसे अपनी आवश्यकताओं के अनुरूप बनाने के लिए बनाते हैं - मुझे इसकी आवश्यकता है सरणी से एक नाम


JSON.stringify({"key":"value"});

आपको बस इस कोड को जोड़ना है
var j={"name":"binchen"}; JSON.stringify(j); // '{"name":"binchen"}'


आप इस तरह देशी स्ट्रिंगफाई फ़ंक्शन का उपयोग कर सकते हैं

const j={ "name": "binchen" }

/** convert json to string */
const jsonString = JSON.stringify(j)

console.log(jsonString) // {"name":"binchen"}


सभी मौजूदा ब्राउज़रों में मूल JSON समर्थन बनाया गया है। इसलिए जब तक आप आईई 6/7 जैसे प्रागैतिहासिक ब्राउज़रों से निपट नहीं रहे हैं, तो आप इसे जितनी आसानी से कर सकते हैं:

var j={"name":"binchen"};
JSON.stringify(j); // '{"name":"binchen"}'

आप ऐसा करने के लिए JSON.stringify () फ़ंक्शन का उपयोग कर सकते हैं।


नोड जेएस में डिबगिंग के लिए आप use.inspect () का उपयोग कर सकते हैं। यह परिपत्र संदर्भों के साथ बेहतर काम करता है।

var util = require('util');
var j = {name: "binchen"};
console.log(util.inspect(j));

यदि आप AngularJS का उपयोग कर रहे हैं, तो 'json' फ़िल्टर को यह करना चाहिए:

<span>{{someObject | json}}</span>

बस कॉपी और पेज़ करें

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

const obj = { "name":"xxx", "city":"York"};
const myJSON = JSON.stringify(obj);
  console.log(myJSON);


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

   JSON.stringify(value, replacer, space)
        value       any JavaScript value, usually an object or array.

       replacer    an optional parameter that determines how object
                    values are stringified for objects. It can be a
                    function or an array of strings.

       space       an optional parameter that specifies the indentation
                    of nested structures. If it is omitted, the text will
                    be packed without extra whitespace. If it is a number,
                    it will specify the number of spaces to indent at each
                    level. If it is a string (such as '\t' or '&nbsp;'),
                    it contains the characters used to indent at each level.

       This method produces a JSON text from a JavaScript value.

यदि आपके पास एक जेसन स्ट्रिंग है और यह [] के साथ लपेटा नहीं गया है तो इसे पहले लपेटें

var str = '{"city": "Tampa", "state": "Florida"}, {"city": "Charlotte", "state": "North Carolina"}';
str = '[' + str + ']';
var jsonobj = $.parseJSON(str);

या

var jsonobj = eval('(' + str + ')');
console.log(jsonobj);

JSON ऑब्जेक्ट को स्ट्रिंग में कनवर्ट करने के लिए आप JSON.stringify () विधि का उपयोग कर सकते हैं।

var j={"name":"binchen"};
JSON.stringify(j)

रिवर्स प्रक्रिया के लिए, आप JSON स्ट्रिंग को JSON ऑब्जेक्ट में कनवर्ट करने के लिए JSON.parse () विधि का उपयोग कर सकते हैं।


Stringify आपके जेएस ऑब्जेक्ट को Stringify बदल सकता है

 var x = {"name" : "name1"};
 JSON.stringify(x);

इसके लिए एक कस्टम परिभाषित किया गया है, जब तक कि हम स्ट्रिंग विधि से अजीब न हों

var j={"name":"binchen","class":"awesome"};
var dq='"';
var json="{";
var last=Object.keys(j).length;
var count=0;
for(x in j)
{
json += dq+x+dq+":"+dq+j[x]+dq;
count++;
if(count<last)
   json +=",";
}
json+="}";
document.write(json);

आउटपुट

{"name":"binchen","class":"awesome"}

लाइव http://jsfiddle.net/mailmerohit5/y78zum6v/


JSON.stringify(j,null,4) आपको सुंदरता की आवश्यकता होने पर JSON को JSON.stringify(j,null,4) देगा


Woking ... उपयोग करने में आसान है

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

धन्यवाद


यदि आप स्ट्रिंग प्रारूप में जेसन गुण मान प्राप्त करना चाहते हैं तो निम्न तरीके का उपयोग करें

var i = {"x":1}

var j = JSON.stringify(i.x);

var k = JSON.stringify(i);

console.log(j);

"1"

console.log(k);

'{"x":1}'

जेएसओएन टिप्पणियों को मूल रूप से समर्थन नहीं देता है, लेकिन आप टिप्पणियों को तोड़ने के लिए अपना खुद का डिकोडर या कम से कम प्रीप्रोसेसर बना सकते हैं, यह बिल्कुल ठीक है (जब तक आप केवल टिप्पणियों को अनदेखा करते हैं और उनका उपयोग नहीं करते हैं कि आपके एप्लिकेशन को JSON डेटा को कैसे संसाधित करना चाहिए )।

JSON की टिप्पणियां नहीं हैं। एक JSON एन्कोडर टिप्पणियों को आउटपुट नहीं करना चाहिए। एक JSON डिकोडर मई स्वीकार और अनदेखा कर सकता है।

टिप्पणियों का अर्थ कभी भी सार्थक संचारित करने के लिए नहीं किया जाना चाहिए। जेएसओएन के लिए यही है।

सीएफ: जेएसओएन स्पेक के लेखक डगलस क्रॉकफोर्ड





javascript json