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


1244

यदि मैंने JS में एक वस्तु को परिभाषित किया है:

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

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

'{"name":"binchen"}'

63
JSON.stringify()वह विधि है जिसकी आप तलाश कर रहे हैं।
गौतम गोपालकृष्णन

10
हमेशा वह पहली बार होता है जब आपको इसे सीखना होता है।
ईगन वुल्फ

जवाबों:


1922

सभी वर्तमान ब्राउज़रों में देशी JSON समर्थन है। जब तक आप IE6 / 7 जैसे प्रागैतिहासिक ब्राउज़रों के साथ काम नहीं कर रहे हैं, तब तक आप इसे आसानी से कर सकते हैं:

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


5
इस स्क्रिप्टJSON.stringify(j); को काम करने के लिए डाउनलोड करें
AabinGunz

2
नोडज पर काम करें क्योंकि नोड एक ही इंजन का उपयोग करते हैं
जोर्जेल्विव

26
IE9 जारी होने के समय से एक वर्ष पहले यह उत्तर पोस्ट किया गया था इसलिए IE8 लिखने के समय वास्तव में एक आधुनिक ब्राउज़र था, या कम से कम यह नवीनतम IE उपलब्ध था।
एंड्रीस

JSON.stringify नेस्टेड ऑब्जेक्ट को कनवर्ट नहीं करता है। उसके लिए कोई उपाय .. ??
रितेश

9
यदि आपको अधिक पठनीय json string की आवश्यकता है तो आप अंतरिक्ष पैरामीटर का उपयोग कर सकते हैं जैसेvar formattedJSON = JSON.stringify(j, null, 2);
Jacek Gzel

110

साथ JSON.stringify()में पाया json2.js या अधिकांश आधुनिक ब्राउज़र में देशी।

   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 ' '),
                    it contains the characters used to indent at each level.

       This method produces a JSON text from a JavaScript value.

6
थोड़ा अधिक स्पष्टता के लिए: replacer है आप अभी भी उपयोग करना चाहते हैं, इसलिए यदि वैकल्पिक, spaceआर्ग डाल nullके लिए replacer। यदि आप सुंदर मुद्रण के लिए इस फ़ंक्शन का उपयोग करने में रुचि रखते हैं, तो मुझे यह उत्तर भी उपयोगी लगा: stackoverflow.com/a/7220510/857209
ग्लेन लॉरेंस

34

थॉमस फ्रैंक द्वारा अद्यतन / बेहतर तरीके से देखें:

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

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

  • चक्रीय संदर्भों को संभालना और पुनर्स्थापित करना
  • फ़ंक्शन / विधियों के लिए जावास्क्रिप्ट कोड शामिल करें (एक विकल्प के रूप में)
  • यदि आवश्यक हो तो Object.prototype से ऑब्जेक्ट सदस्यों को बाहर करें।

23

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

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

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


रिवर्स प्रक्रिया को जोड़ने के लिए धन्यवाद।
डेविड लावेरी

12

कोणीयजेएस में

angular.toJson(obj, pretty);

obj: इनपुट JSON में क्रमबद्ध किया जाएगा।

सुंदर (वैकल्पिक):
यदि इसे सही पर सेट किया जाता है, तो JSON आउटपुट में नईलाइन और व्हॉट्सएप होंगे। यदि एक पूर्णांक पर सेट किया जाता है, तो JSON आउटपुट में प्रति इंडेंटेशन के कई स्थान होंगे।

(डिफ़ॉल्ट: 2)


12

JSON.stringify(j, null, 4) यदि आप सौंदर्यीकरण की जरूरत है तो भी आपको JSON को सुशोभित करेगा

दूसरा पैरामीटर प्रतिकृति है। इसका उपयोग फ़िल्टर के रूप में किया जा सकता है जहाँ आप कड़ाई करते समय कुछ प्रमुख मूल्यों को फ़िल्टर कर सकते हैं। यदि इसे शून्य करने के लिए सेट किया गया है, तो यह सभी महत्वपूर्ण मान युग्मों को लौटा देगा


10

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

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

9

JSON.stringify JSON टेक्स्ट में जावास्क्रिप्ट ऑब्जेक्ट को बदलता है और उस JSON टेक्स्ट को एक स्ट्रिंग में स्टोर करता है।

रूपांतरण स्ट्रिंग के लिए एक वस्तु है

JSON.parse JSON टेक्स्ट की स्ट्रिंग को जावास्क्रिप्ट ऑब्जेक्ट में बदल देता है।

रूपांतरण वस्तु के लिए एक स्ट्रिंग है

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

इसे JSON स्ट्रिंग बनाने के लिए निम्नलिखित उपयोग किया जा सकता है।

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

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

अधिक जानकारी के लिए आप नीचे इस लिंक का उल्लेख कर सकते हैं।

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify


7

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

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"}

LIVE http://jsfiddle.net/mailmerohit5/y78zum6v/


उद्धरण चिह्नों के साथ तार से बच नहीं जाता है: "a a" in a string "
अल्फ़केविन

1
वह कस्टम कोड बहुत अधूरा है। सरणियों, वस्तुओं और विशेष वर्णों का समर्थन नहीं करता है। उदाहरण: json {"arr": ["1", "2", "3"], "obj": {"a": "b"}, "key \" with \\ special} chars ":" वैल्यू "} आउटपुट {" अरेस्ट ":" 1,2,3 "," ओब्ज ":" [ऑब्जेक्ट ऑब्जेक्ट] "," की "के साथ" स्पेशल} चार्ज़ ":" वैल्यू "} गलत है!
मैनुअल रोमेरो

7

मैं स्मृति और अन्य समाधानों को चलाने के लिए कठोर होने के साथ समस्याएँ काम कर रहा था (कम से कम मैं उन्हें काम करने के लिए नहीं मिल सका) जब मैं इस धागे पर ठोकर खाई। रोहित कुमार की बदौलत मैं इसे दुर्घटनाग्रस्त होने से रोकने के लिए अपने बहुत बड़े 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 आपको अपना स्ट्रिंग प्रतिनिधित्व प्रदान करेगा (जैसा कि इस धागे में अन्य बार उल्लेख किया गया है) यदि आपके पास एक बड़ी वस्तु है, तो यह भी काम करना चाहिए - बस यह सुनिश्चित करें कि आप इसे अपनी आवश्यकताओं के अनुरूप बनाने के लिए बनाते हैं - मुझे इसके लिए नाम की आवश्यकता है


5

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

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

धन्यवाद



3

यदि आप स्ट्रिंग प्रारूप में 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}'

3

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

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

3

मौजूदा JSON प्रतिस्थापन जहां मेरे लिए बहुत अधिक है, इसलिए मैंने अपना फ़ंक्शन लिखा। यह काम करने लगता है, लेकिन मुझे कई किनारे मामले याद आ सकते हैं (जो कि मेरे प्रोजेक्ट में नहीं हैं)। और शायद किसी भी पहले से मौजूद वस्तुओं के लिए काम नहीं करेगा, केवल स्व-निर्मित डेटा के लिए।

function simpleJSONstringify(obj) {
    var prop, str, val,
        isArray = obj instanceof Array;

    if (typeof obj !== "object") return false;

    str = isArray ? "[" : "{";

    function quote(str) {
        if (typeof str !== "string") str = str.toString();
        return str.match(/^\".*\"$/) ? str : '"' + str.replace(/"/g, '\\"') + '"'
    }

    for (prop in obj) {
        if (!isArray) {
            // quote property
            str += quote(prop) + ": ";
        }

        // quote value
        val = obj[prop];
        str += typeof val === "object" ? simpleJSONstringify(val) : quote(val);
        str += ", ";
    }

    // Remove last colon, close bracket
    str = str.substr(0, str.length - 2)  + ( isArray ? "]" : "}" );

    return str;
}

2
So in order to convert a js object to JSON String: 

किसी वस्तु को स्ट्रिंग में बदलने का सरल वाक्य विन्यास है

JSON.stringify(value)

पूर्ण सिंटैक्स है: JSON.stringify (मान [, replacer [, space]]])

आइए देखते हैं कुछ सरल उदाहरण। ध्यान दें कि पूरे स्ट्रिंग को दोहरे उद्धरण मिलते हैं और यदि आवश्यक हो तो स्ट्रिंग के सभी डेटा बच जाते हैं।

JSON.stringify("foo bar"); // ""foo bar""
JSON.stringify(["foo", "bar"]); // "["foo","bar"]"
JSON.stringify({}); // '{}'
JSON.stringify({'foo':true, 'baz':false}); /* " 
{"foo":true,"baz":false}" */



const obj = { "property1":"value1", "property2":"value2"};
const JSON_response = JSON.stringify(obj);
console.log(JSON_response);/*"{ "property1":"value1", 
"property2":"value2"}"*/

2
यदि आप अपने कोड का संक्षिप्त विवरण प्रदान कर सकते हैं तो यह बहुत अच्छा होगा।
१on:

यह प्रश्न का उत्तर प्रदान नहीं करता है। एक बार आपके पास पर्याप्त प्रतिष्ठा होने पर आप किसी भी पोस्ट पर टिप्पणी करने में सक्षम होंगे ; इसके बजाय, ऐसे उत्तर प्रदान करें जिन्हें पूछने वाले से स्पष्टीकरण की आवश्यकता न हो । - समीक्षा से
राफेल

मैंने अपना उत्तर संपादित कर लिया है, @ राफेल और @ जॉनी को इंगित करने के लिए बहुत-बहुत धन्यवाद।
राहुल चौधरी

1

बस JSON.stringifyइस तरह के रूपांतरण करने के लिए उपयोग करें - हालांकि याद रखें कि जिन क्षेत्रों में undefinedमूल्य हैं, उन्हें json में शामिल नहीं किया जाएगा

var j={"name":"binchen", "remember":undefined, "age": null };

var s=JSON.stringify(j);

console.log(s);

rememberआउटपुट json से फ़ील्ड 'गायब' है


आपने अभी मेरा दिन बचाया है। मैं अपनी वस्तु नहीं बचा पा रहा था। कुंजी जो कि अपरिभाषित मूल्य वाले क्षेत्र हैं उन्हें json में शामिल नहीं किया जाएगा मेरी समस्या हल हो गई!
मोहम्मद घोंचेसेफी

0

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

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

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


0

उपयोग JSON.stringify(param1, param2, param3);

क्या है: -

param1 -> JSON में बदलने के लिए मूल्य

param2 -> अपने तरीके से कठोर करने के लिए कार्य करते हैं। वैकल्पिक रूप से, यह एक सफेद सूची के रूप में कार्य करता है जिसके लिए वस्तुओं को अंतिम JSON में शामिल करने की आवश्यकता होती है।

param3 -> एक संख्या डेटा प्रकार जो जोड़ने के लिए व्हॉट्सएप की संख्या को इंगित करता है। अधिकतम अनुमत 10 हैं।


0

कन्वर्ट str => obj

const onePlusStr = '[{"ब्रांड": "oneplus"}, {"मॉडल": "7T"}]';

const onePLusObj = JSON.parse (onePlusStr);

कन्वर्ट obj => str

const onePLusObjToStr = JSON.stringify (onePlusStr);

JSON के संदर्भ जे एस में पार्स करने:
JSON.parse (): क्लिक
JSON.stringify (): क्लिक करें


क्या आप अधिक जानकारी प्रदान कर सकते हैं? संदर्भ आदि
Nodejs-nerd

JSON के संदर्भ जे एस में पार्स करने: JSON.parse (): w3schools.com/js/js_json_parse.asp : JSON.stringify () w3schools.com/js/js_json_stringify.asp
यश

धन्यवाद, क्या आप इसे शामिल करने के लिए अपने उत्तर को संपादित कर सकते हैं
नोड्सज- nerd

0

विधि का उपयोग करना बहुत आसान है, लेकिन इसे रिलीज में उपयोग न करें (संभव संगतता समस्याओं के कारण)।

अपनी तरफ से परीक्षण के लिए महान।

Object.prototype.toSource()

//Usage:
obj.toSource();

0

स्ट्रिंग फ़ंक्शन का उपयोग करें

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

var j_json = JSON.stringify(j);

console.log("j in json object format :", j_json);

हैप्पी कोडिंग !!!


0
//use JSON.stringify({})

const stringified = JSON.stringify ({}) // पास ऑब्जेक्ट जिसे आप स्ट्रिंग प्रारूप में बदलना चाहते हैं


-1

इसे इस्तेमाल करो,

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

-24

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

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 स्ट्रिंग है और इसे ऑब्जेक्ट के रूप में प्राप्त करना चाहता है।
जोशुआ स्नाइडर

1
आपने सवाल करने के लिए उल्टा काम किया है .. आपको JSON.stringfy () फ़ंक्शन का उपयोग करना चाहिए
हार्दिक पटेल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.