it-swarm.dev

الفرق بين JSON.stringify و JSON.parse

لقد كنت مرتبكًا حول متى يجب استخدام هاتين الطريقتين للتحليل.

بعد أن أردد بيانات json_encoded الخاصة بي واسترجعها مرة أخرى عبر aax ، غالبًا ما أواجه حيرة عندما يجب استخدام JSON.stringify و JSON.parse .

أحصل على [object,object] في ملفي console.log عندما يتم تحليله وكائن JavaScript عند التقييد.

$.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?
    }
});
412
HIRA THAKUR

JSON.stringify يحول كائن JavaScript إلى نص JSON ويخزن نص JSON في سلسلة.

JSON.parse تحول سلسلة من نص JSON إلى كائن JavaScript.

618
Quentin

JSON.parse() هي لـ "تحليل" شيء تم استلامه كـ JSON.
JSON.stringify() هي إنشاء سلسلة JSON خارج كائن/صفيف.

53
Bjorn 'Bjeaurn' S

هم معكوس بعضهم البعض. JSON.stringify() تسلسل كائن JS إلى سلسلة JSON ، بينما JSON.parse() ستقوم بإلغاء تسلسل سلسلة JSON إلى كائن JS.

41
bluehallu

هم الأضداد من بعضهم البعض.

JSON.stringify ()

JSON.stringify () إجراء تسلسل لكائن JS في سلسلة JSON.

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
21
Bhushan Gadekar

أولاً ، تقوم دالة JSON.stringify() بتحويل قيمة JavaScript إلى سلسلة JavaScript Object Notation (JSON). تقوم الدالة JSON.parse() بتحويل سلسلة JavaScript Object Notation (JSON) إلى كائن. لمزيد من المعلومات حول هاتين الوظيفتين ، يرجى الرجوع إلى الروابط التالية.

https://msdn.Microsoft.com/library/cc836459(v=vs.94).aspxhttps://msdn.Microsoft.com/library/cc836466(v=vs.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>
20
Mou
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" }
13
anik islam Shojib

الارتباك الحقيقي هنا ليس حول تحليل vs stringify ، إنه يتعلق بنوع بيانات المعلمة data لاستدعاء النجاح.

data يمكن أن يكون إما استجابة خام ، أي سلسلة ، أو يمكن أن يكون كائن JavaScript ، وفقًا للوثائق:

نجاح

النوع: الوظيفة (أي بيانات ، سلسلة نصية ، jqXHR jqXHR) وظيفة يتم استدعاؤها في حالة نجاح الطلب. يتم تمرير الدالة ثلاث وسائط: البيانات التي يتم إرجاعها من الخادم ، المنسقة وفقًا لمعلمة dataType أو وظيفة رد اتصال dataFilter ، إذا كانت محددة ؛ <..>

و dataType الافتراضي إلى إعداد "تخمين ذكي"

dataType (افتراضي: Intelligent Guess (xml أو json أو script أو html))

النوع: سلسلة نوع البيانات التي تتوقعها من الخادم. إذا لم يتم تحديد أي منها ، فستحاول jQuery محاولة الاستدلال بناءً على نوع استجابة MIME (نوع XML MIME سيؤدي إلى الحصول على XML ، في 1.4 سوف ينتج عن JSON كائن JavaScript ، وفي 1.4 سينفذ البرنامج النصي ، و سيتم إرجاع أي شيء آخر كسلسلة).

6
Patrick

JSON.stringify() يحول كائن إلى سلسلة.

JSON.parse() تحويل سلسلة JSON إلى كائن.

6
Hamed Kamrava

لا أعرف ما إذا كان قد تم ذكره ، ولكن أحد استخدامات JSON.parse (JSON.stringify (myObject)) هو إنشاء نسخة من الكائن الأصلي.

يكون هذا مفيدًا عندما تريد العبث ببعض البيانات دون التأثير على الكائن الأصلي. ربما ليست الطريقة الأنظف/الأسرع ولكن بالتأكيد أبسط الأشياء التي ليست معقدة بشكل كبير.

4
P. Brown

هم عكس الكامل لبعضهم البعض.

JSON.parse() يُستخدم في تحليلالبيانات التي تم استلامها كـ JSON؛ it إلغاء تسلسلa JSON stringإلى كائن JavaScript.

JSON.stringify() من ناحية أخرى ، يتم استخدام لإنشاء سلسلة JSONالخروج من كائنأو مجموعة؛ هو تسلسلأ كائن JavaScriptإلى سلسلة JSON.

4
user6788628

كائن JavaScript <-> سلسلة JSON


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

JSON.stringify (obj) - يأخذ أي كائن قابل للتسلسل وإرجاع تمثيل JSON كسلسلة.

JSON.stringify() -> Object To String.

JSON.parse (string) - يأخذ سلسلة JSON جيدة التنسيق ويعيد كائن JavaScript المطابق.

JSON.parse() -> String To Object.

Explanation: JSON.stringify (obj [، replacer [، space]])؛

أداة استبدال/مساحة - اختيارية أو تأخذ قيمة عدد صحيح أو يمكنك استدعاء وظيفة إرجاع نوع interger.

function replacer(key, value) {
    if (typeof value === 'number' && !isFinite(value)) {
        return String(value);
    }
    return value;
}
  • استبدال مجرد استخدام لاستبدال غير محدود لا مع فارغة.
  • استخدام الفضاء لوضع مسافة بادئة Json String بواسطة مساحة
4
Zigri2612

إنهم يعارضون بعضهم البعض. JSON.Stringify() يحول JSON إلى سلسلة ويقوم JSON.Parse() بتوزيع سلسلة في JSON.

3
David Carmona

JSON.stringify(obj [, replacer [, space]]) - يأخذ أي كائن قابل للتسلسل ويعيد تمثيل JSON كسلسلة.

JSON.parse(string) - يأخذ سلسلة JSON جيدة التنسيق ويعيد كائن JavaScript المقابل.

3
Gladson Robinson

JSON: يستخدم بشكل أساسي لتبادل البيانات من/إلى الخادم. قبل إرسال كائن 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

كما يحول صفيف Javascript إلى سلسلة

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 من الخادم ، ستكون البيانات هي تنسيق السلسلة. ومن هنا نقوم بتحويل السلسلة إلى كائن 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
Sheo Dayal Singh

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
priya log

JSON.parse () يأخذ سلسلة JSON ويحولها إلى كائن JavaScript.

JSON.stringify () يأخذ كائن JavaScript ويحوله إلى سلسلة 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"]
0
Bipon Biswas