JSON.stringify এবং JSON.parse এর মধ্যে পার্থক্য


452

এই দুটি পার্সিং পদ্ধতি কখন ব্যবহার করতে হবে তা নিয়ে আমি বিভ্রান্ত হয়ে পড়েছি।

আমি আমার json_encoded ডেটা প্রতিধ্বনির পরে এবং এজ্যাক্সের মাধ্যমে এটি পুনরুদ্ধার করার পরে, আমার কখন JSON.stringify এবং JSON.parse ব্যবহার করা উচিত তা নিয়ে আমি প্রায়শই বিভ্রান্তিতে পড়ি

আমি পেতে [object,object]আমার মধ্যে console.log যখন পার্স এবং একটি জাভাস্ক্রিপ্ট অবজেক্ট যখন stringified।

$.ajax({
url: "demo_test.txt",
success: function(data) {
         console.log(JSON.stringify(data))
                     /* OR */
         console.log(JSON.parse(data))
        //this is what I am unsure about?
    }
});

1
নীচের উত্তরগুলি সংক্ষিপ্ত করতে: 1. তারা একে অপরের বিপরীত। 2. মিলিত এটি তথ্য যাচাই বা মানুষের পাঠযোগ্য চালু করতে সাহায্য করে: json.stringify(json.parse(data))
হাফেনক্রিনিচ

উত্তর:


673

JSON.stringify একটি জাভাস্ক্রিপ্ট অবজেক্টটিকে JSON পাঠ্যে পরিণত করে এবং স্ট্রিংয়ে JSON পাঠ্য সংরক্ষণ করে, যেমন:

var my_object = { key_1: "some text", key_2: true, key_3: 5 };

var object_as_string = JSON.stringify(my_object);  
// "{"key_1":"some text","key_2":true,"key_3":5}"  

typeof(object_as_string);  
// "string"  

JSON.parse JSON পাঠ্যের একটি স্ট্রিংটিকে একটি জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তরিত করে, যেমন:

var object_as_string_as_object = JSON.parse(object_as_string);  
// {key_1: "some text", key_2: true, key_3: 5} 

typeof(object_as_string_as_object);  
// "object" 

9
json.stringify (json.parse (ডেটা))? আমি কোডে এটি দেখেছি ... সুতরাং এটি মূলত জসন তথ্যগুলিকে বস্তুতে রূপান্তর করছে এবং তারপরে আবার এটিকে জসন ডেটাতে রূপান্তর করছে ...
জসন ডেটাতে পুনর্নির্মাণ করছে হিরা ঠাকুর

29
@ মেসিয়াহ - হ্যাঁ এটি মূলত অর্থহীন, তবে এটি JSON যাচাইকারী হিসাবে পরিবেশন করতে পারে।
কোয়ান্টিন

11
অবজেক্ট কী মান জোড়ানোর জন্য একটি সাধারণ অবজেক্ট কপিও ব্যবহার করা যেতে পারে।
শিকারি

4
কনসোলে ডিবাগ করার জন্য আমি এটি খুব দরকারী বলে মনে করেছি - এটি এটিকে সহজেই পঠনযোগ্য করে তোলে।
কির্গি

2
@ কুইন্টিন আপনি উদাহরণের সাহায্যে ব্যাখ্যা করতে পারেন?
পারদীপ জৈন

57

JSON.parse()JSON হিসাবে প্রাপ্ত এমন কিছু "পার্সিং" করার জন্য।
JSON.stringify()অবজেক্ট / অ্যারে থেকে একটি JSON স্ট্রিং তৈরি করা।


4
নির্ভুলতা: এটি কোনও বস্তু নাও হতে পারে।
22:13

সত্য, জাভাস্ক্রিপ্ট একটি নির্দিষ্ট ধরণের হিসাবে স্বীকৃত কোনও অ্যারে বা কিছু হতে পারে। শেষের সারি; এটি এটি নেয় এবং উপযুক্ত JSON সমতুল্যে রূপান্তর করে।
বজর্ন 'বেজায়ারন' এস

2
@ অডিস্ট্রয় - এটি একটি অবজেক্ট হতে হবে (লক্ষ্য করে যে অ্যারেগুলি বস্তু হয়)।
কোয়ান্টিন

2
@ আবদ্ধিনJSON.stringify(3)
ডেনিস

@ অস্ট্রোয় - হু, বুঝতে পারেনি তারা জেএসএন টুকরো মোকাবেলা করার জন্য এটি প্রসারিত করবে । এটাই অনর্থক।
কুইন্টিন

43

তারা একে অপরের বিপরীত। জেএসএন স্ট্রিংয়ে একটি জেএস বিষয়কে JSON.stringify()সিরিয়ালাইজ করে, যেখানে JSON.parse()একটি জেএসএন স্ট্রিংকে একটি জেএস অবজেক্টে ডিসরিয়ালাইজ করা হবে।


25

তারা একে অপরের বিরোধী।

JSON.stringify ()

JSON.stringify () একটি জেএসএন স্ট্রিংয়ে একটি জেএস বস্তু বা মানকে সিরিয়ালাইজ করে।

JSON.stringify({});                  // '{}'
JSON.stringify(true);                // 'true'
JSON.stringify('foo');               // '"foo"'
JSON.stringify([1, 'false', false]); // '[1,"false",false]'
JSON.stringify({ x: 5 });            // '{"x":5}'

JSON.stringify(new Date(2006, 0, 2, 15, 4, 5)) 
// '"2006-01-02T15:04:05.000Z"'

JSON.stringify({ x: 5, y: 6 });
// '{"x":5,"y":6}' or '{"y":6,"x":5}'
JSON.stringify([new Number(1), new String('false'), new Boolean(false)]);
// '[1,"false",false]'

JSON.parse ()

JSON.parse () পদ্ধতিটি স্ট্রিংটিকে JSON হিসাবে পার্স করে, বিকল্পভাবে উত্পাদিত মানটিকে রূপান্তর করে।

JSON.parse('{}');              // {}
JSON.parse('true');            // true
JSON.parse('"foo"');           // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null');            // null

7
এর জন্য আরও ভাল নাম parse()হবে objectify()বা jsonify()
নিউ এভারেস্ট

কেন JSON.toString () এবং JSON.toObject () নয়? আমি এই নামগুলি পছন্দ করব (বিশেষত নতুন প্রোগ্রামারগুলির জন্য যা ইন্টেলিজেন্স ব্যবহার করে তাদের জন্য দরকারী)।
রিচার্ড চ্যাসেরু

2
আপনার অনুলিপি করার পরিবর্তে পোস্ট ডেভেলপার.মোজিলা.আর.ইন /
মাহি

@nueverest jsonify(), দ্ব্যর্থক এবং বিভ্রান্তিকর হতে থেকে parse()নেই না একটি রূপান্তর Stringএকটি থেকে JSONটাইপ (যা কি jsonify()ইঙ্গিত would), কিন্তু parse()একটি পরিবর্তন করে JSON- বিন্যস্ত String কোন: Object, Array, Number, String, Booleanবা null। লোকেরা প্রায়শই JSON "স্ট্রিং প্রতিনিধিত্ব" এবং Object(বা dictপাইথন ইত্যাদিতে) বিভ্রান্ত করে ।
jbmusso

21

প্রথমত, JSON.stringify()ফাংশন একটি জাভাস্ক্রিপ্ট মানকে একটি জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন (জেএসএন) স্ট্রিংয়ে রূপান্তর করে। JSON.parse()ফাংশন একটি জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন (জেএসএন) স্ট্রিংকে একটি বস্তুতে রূপান্তর করে। এই দুটি ফাংশন সম্পর্কে আরও তথ্যের জন্য, দয়া করে নীচের লিঙ্কগুলি দেখুন।

https://msdn.microsoft.com/library/cc836459(vvv.9.94).aspx https: //msdn.mic Microsoft.com/library/cc836466(vvv.9.94).aspx

দ্বিতীয়ত, নিম্নলিখিত দুটি নমুনা আপনাকে এই দুটি ফাংশন বুঝতে সহায়তা করবে।

<form id="form1" runat="server">
    <div>
        <div id="result"></div>
    </div>
</form>

<script>
    $(function () {
        //define a json object
        var employee = { "name": "John Johnson", "street": "Oslo West 16", "phone": "555 1234567" };

        //use JSON.stringify to convert it to json string
        var jsonstring = JSON.stringify(employee);
        $("#result").append('<p>json string: ' + jsonstring + '</p>');

        //convert json string to json object using JSON.parse function
        var jsonobject = JSON.parse(jsonstring);
        var info = '<ul><li>Name:' + jsonobject.name + '</li><li>Street:' + jsonobject.street + '</li><li>Phone:' + jsonobject.phone + '</li></ul>';

        $("#result").append('<p>json object:</p>');
        $("#result").append(info);
    });
</script>

15
var log = { "page": window.location.href, 
        "item": "item", 
        "action": "action" };

log = JSON.stringify(log);
console.log(log);
console.log(JSON.parse(log));

// আউটপুট হবে:

// প্রথম কনসোলের জন্য একটি স্ট্রিংয়ের মতো:

'{ "page": window.location.href,"item": "item","action": "action" }'

// দ্বিতীয় কনসোলের জন্য একটি অবজেক্টের মতো:

Object {
page   : window.location.href,  
item   : "item",
action : "action" }

6

JSON.stringify() একটি বস্তুকে একটি স্ট্রিতে রূপান্তর করে।

JSON.parse() একটি JSON স্ট্রিংকে একটি বস্তুতে রূপান্তর করে।


2
"নিখুঁততা অর্জন করা হয়, যখন যুক্ত করার মতো আরও কিছু থাকে না, যখন যখন কিছুই নিতে থাকে না তখন"। এন্টোইন ডি সেন্ট-এক্সুপেরি
রনি রয়স্টন

6

এখানে আসল বিভ্রান্তি পার্স বনাম স্ট্রিংফাই সম্পর্কে নয়, এটি dataসাফল্য কলব্যাকের প্যারামিটারের ডেটা টাইপ সম্পর্কে ।

data হয় কাঁচা প্রতিক্রিয়া, যেমন একটি স্ট্রিং হতে পারে, বা ডকুমেন্টেশন অনুযায়ী এটি একটি জাভাস্ক্রিপ্ট অবজেক্ট হতে পারে:

সাফল্য

প্রকার: ফাংশন (যে কোনও ডেটা, স্ট্রিং টেক্সটস্ট্যাটাস, জকিএক্সএইচআর জেএকএক্সএইচআর) অনুরোধটি সফল হলে একটি ফাংশন ডেকে আনা হবে। ফাংশনটি তিনটি আর্গুমেন্ট পাস করে: সার্ভার থেকে ডেটা ফিরেছে, ডাটা টাইপ প্যারামিটার বা ডেটা ফিল্টার কলব্যাক ফাংশন অনুযায়ী নির্দিষ্ট করা থাকলে ফর্ম্যাট করা; <..>

এবং ডেটা টাইপ 'বুদ্ধিমান অনুমান' একটি সেটিং ডিফল্ট

ডেটা টাইপ (ডিফল্ট: বুদ্ধিমান অনুমান (এক্সএমএল, জসন, স্ক্রিপ্ট, বা এইচটিএমএল))

প্রকার: স্ট্রিং সার্ভার থেকে যে ধরণের ডেটা আপনি প্রত্যাশা করছেন। যদি কোনওটি নির্দিষ্ট না করা থাকে তবে jQuery এটির প্রতিক্রিয়াটির MIME প্রকারের ভিত্তিতে নির্ধারণের চেষ্টা করবে (একটি এক্সএমএল মাইমে টাইপ এক্সএমএল দেবে, ১.৪ এ জেএসএন একটি জাভাস্ক্রিপ্ট অবজেক্ট দেবে, ১.৪ স্ক্রিপ্টে স্ক্রিপ্টটি কার্যকর করবে এবং অন্য কিছু হবে) স্ট্রিং হিসাবে ফিরে এসেছে)।


2
এটি একটি খুব দরকারী সংযোজন, কারণ এটি বিভ্রান্তির বিষয়টি কী তা বুঝতে সহায়তা করে!
rmchaharry

4

জাভাস্ক্রিপ্ট অবজেক্ট <-> জেএসএন স্ট্রিং


JSON.stringify() <-> JSON.parse()

JSON.stringify (আপত্তি) - যে কোনও সিরিয়ালাইজযোগ্য অবজেক্ট নেয় এবং স্ট্রিং হিসাবে JSON উপস্থাপনা প্রদান করে।

JSON.stringify() -> Object To String.

JSON.parse (স্ট্রিং) - একটি সুগঠিত JSON স্ট্রিং নেয় এবং সংশ্লিষ্ট জাভাস্ক্রিপ্ট অবজেক্টটি প্রদান করে।

JSON.parse() -> String To Object.

ব্যাখ্যা: JSON.stringify (আপত্তি [, replacer [, স্থান]]);

Replacer / Space - alচ্ছিক বা পূর্ণসংখ্যার মান নেয় বা আপনি সংখ্যার ধরণের রিটার্ন ফাংশন কল করতে পারেন।

function replacer(key, value) {
    if (typeof value === 'number' && !isFinite(value)) {
        return String(value);
    }
    return value;
}
  • শূন্যস্থান সহ নন-সসীম নং প্রতিস্থাপনের জন্য Replacer Just Use।
  • স্থান দ্বারা জেসন স্ট্রিং ইন্ডেন্টিংয়ের জন্য স্পেস ব্যবহার

4

তারা একে অপরের সম্পূর্ণ বিপরীত।

JSON.parse()JSON হিসাবে প্রাপ্ত ডেটা পার্সিংয়ের জন্য ব্যবহৃত হয় ; এটি একটি JSON স্ট্রিংটিকে একটি জাভাস্ক্রিপ্ট অবজেক্টে ডিসিজায়ালাইজ করে

JSON.stringify()অন্যদিকে কোনও বস্তু বা অ্যারে থেকে JSON স্ট্রিং তৈরি করতে ব্যবহৃত হয় ; এটি একটি JSON স্ট্রিংয়ে একটি জাভাস্ক্রিপ্ট অবজেক্ট সিরিয়ালাইজ করে


4

এটি উল্লেখ করা হয়েছে কিনা তা আমি জানি না, তবে JSON.parse (JSON.stringify (myObject)) এর অন্যতম ব্যবহার হ'ল আসল অবজেক্টের ক্লোন তৈরি করা।

আপনি যখন আসল অবজেক্টটিকে প্রভাবিত না করে কিছু ডেটা নিয়ে গোলযোগ করতে চান তখন এটি কার্যকর hand সম্ভবত সবচেয়ে পরিষ্কার / দ্রুততম উপায় নয় তবে অবজেক্টগুলির জন্য অবশ্যই সহজতম উপায় যা ব্যাপকভাবে জটিল নয়।


3

JSON.stringify(obj [, replacer [, space]]) - যে কোনও সিরিয়ালাইজযোগ্য অবজেক্ট নিয়ে যায় এবং একটি স্ট্রিং হিসাবে JSON উপস্থাপনা প্রদান করে।

JSON.parse(string) - একটি সুগঠিত JSON স্ট্রিং নেয় এবং সংশ্লিষ্ট জাভাস্ক্রিপ্ট অবজেক্টটি প্রদান করে।


3

তারা একে অপরের বিরোধিতা করছে। JSON.Stringify()JSON কে স্ট্রিংয়ে রূপান্তর করে এবং JSON.Parse()একটি স্ট্রিংকে JSON এ পার্স করে।


1

জেএসএন: এটি মূলত সার্ভারে / থেকে ডেটা বিনিময় করতে ব্যবহৃত হয়। সার্ভারে JSON অবজেক্টটি প্রেরণের আগে, এটি স্ট্রিং হতে হবে।

JSON.stringify() //Converts the JSON object into the string representation.
var jsonData={"Name":"ABC","Dept":"Software"};// It is a JSON object
var jsonString=JSON.stringify(jsonData);// It is a string representation of the object
// jsonString === '{"Name":"ABC","Dept":"Software"}'; is true

এটি জাভাস্ক্রিপ্ট অ্যারেটিকে স্ট্রিংয়ে রূপান্তর করে

var arrayObject=["ABC","Software"];// It is array object
var arrString=JSON.stringify(array);// It is string representation of the array (object)
// arrString === '["ABC","Software"]'; is true 

যখন আমরা সার্ভার থেকে JSON ডেটা পেয়েছি তখন ডেটাটি স্ট্রিং ফর্ম্যাট হবে enceযে আমরা স্ট্রিংটিকে JSON অবজেক্টে রূপান্তর করি।

JSON.parse() //To convert the string into JSON object.
var data='{ "name":"ABC", "Dept":"Software"}'// it is a string (even though it looks like an object)
var JsonData= JSON.parse(data);// It is a JSON Object representation of the string.
// JsonData === { "name":"ABC", "Dept":"Software"}; is true

1

JSON.parse() স্ট্রিংকে অবজেক্টে রূপান্তর করতে ব্যবহৃত হয়।
JSON.stringify()অবজেক্টটি স্ট্রিংয়ে রূপান্তর করতে ব্যবহৃত হয়।

আপনি এটি উল্লেখ করতে পারেন ...

<script type="text/javascript">

function ajax_get_json(){

    var hr = new XMLHttpRequest();
    hr.open("GET", "JSON/mylist.json", true);
    hr.setRequestHeader("Content-type", "application/json",true);
    hr.onreadystatechange = function() {
        if(hr.readyState == 4 && hr.status == 200) {
           /*  var return_data = hr.responseText; */

           var data=JSON.parse(hr.responseText);
           var status=document.getElementById("status");
           status.innerHTML = "";
           /* status.innerHTML=data.u1.country;  */
           for(var obj in data)
               {
               status.innerHTML+=data[obj].uname+" is in "+data[obj].country+"<br/>";
               }

        }
    }
    hr.send(null);
    status.innerHTML = "requesting...";
}
</script>

1

JSON.parse () একটি JSON স্ট্রিং নেয় এবং এটিকে একটি জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তরিত করে।

JSON.stringify () একটি জাভাস্ক্রিপ্ট অবজেক্ট নেয় এবং এটিকে JSON স্ট্রিংয়ে রূপান্তর করে।

const myObj = {
      name: 'bipon',
      age: 25,
      favoriteFood: 'fish curry'
};

 const myObjStr = JSON.stringify(myObj);

console.log(myObjStr);
// "{"name":"bipon","age":26,"favoriteFood":"fish curry"}"

console.log(JSON.parse(myObjStr));
 // Object {name:"bipon",age:26,favoriteFood:"fish curry"}
এবং যদিও পদ্ধতিগুলি সাধারণত বস্তুগুলিতে ব্যবহৃত হয় তবে সেগুলি অ্যারেতেও ব্যবহার করা যেতে পারে:
const myArr = ['simon', 'gomez', 'john'];

const myArrStr = JSON.stringify(myArr);

console.log(myArrStr);
// "["simon","gomez","john"]"

console.log(JSON.parse(myArrStr));
// ["simon","gomez","john"]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.