javascript - jquery json إلى السلسلة؟




getjson (4)

أفضل طريقة وجدتها هي استخدام jQuery JSON

بدلاً من الانتقال من سلسلة json واستخدام $ .parseJSON ، أحتاج إلى أخذ الموضوع وتخزينه في متغير كسلسلة تمثل json.

(تتوقع المكتبة التي أتعامل معها نوع json تالف حتى أحتاج إلى الفوضى معه لتشغيله.)

ما هي الطريقة الأفضل لعمل هذا؟


أنا أستعمل

$.param(jsonObj)

الذي يحصل لي على السلسلة.


يمكنك تحليل JSON إلى كائن ، ثم إنشاء JSON غير صحيح من كائن ajavscript. هذا قد لا يكون أفضل أداء ، مع ذلك.

بخلاف ذلك ، إذا كنت تحتاج فقط إلى إجراء تغييرات صغيرة جدًا على السلسلة ، فعليك فقط معاملتها كسلسلة ، ثم قم بدمجها باستخدام javascript القياسي.


تعديل: يجب عليك استخدام مكتبة json2.js من Douglas Crockford بدلاً من تنفيذ الشفرة أدناه. يوفر بعض الميزات الإضافية ودعم المستعرض الأفضل / الأقدم.

احضر ملف json2.js من: https://github.com/douglascrockford/JSON-js

// implement JSON.stringify serialization
JSON.stringify = JSON.stringify || function (obj) {
    var t = typeof (obj);
    if (t != "object" || obj === null) {
        // simple data type
        if (t == "string") obj = '"'+obj+'"';
        return String(obj);
    }
    else {
        // recurse array or object
        var n, v, json = [], arr = (obj && obj.constructor == Array);
        for (n in obj) {
            v = obj[n]; t = typeof(v);
            if (t == "string") v = '"'+v+'"';
            else if (t == "object" && v !== null) v = JSON.stringify(v);
            json.push((arr ? "" : '"' + n + '":') + String(v));
        }
        return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
    }
};

var tmp = {one: 1, two: "2"};
JSON.stringify(tmp); // '{"one":1,"two":"2"}'

رمز من: http://www.sitepoint.com/blogs/2009/08/19/javascript-json-serialization/





json