亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

淺析Js(Jquery)中,字符串與JSON格式互相轉換的示例(直接運行實例)

2019-11-20 22:32:48
字體:
來源:轉載
供稿:網友
首先,準備新建一個js文件。以下是JSON2.js的內容,把內容拷到js文件中,以便調用:
復制代碼 代碼如下:

/*
    http://www.JSON.org/json2.js
    Public Domain.
    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
    See http://www.JSON.org/js.html
    This code should be minified before deployment.
    See http://javascript.crockford.com/jsmin.html
    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
    NOT CONTROL.
    This file creates a global JSON object containing two methods: stringify
    and parse.
        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.
            When an object value is found, if the object contains a toJSON
            method, its toJSON method will be called and the result will be
            stringified. A toJSON method does not serialize: it returns the
            value represented by the name/value pair that should be serialized,
            or undefined if nothing should be serialized. The toJSON method
            will be passed the key associated with the value, and this will be
            bound to the value
            For example, this would serialize Dates as ISO strings.
                Date.prototype.toJSON = function (key) {
                    function f(n) {
                        // Format integers to have at least two digits.
                        return n < 10 ? '0' + n : n;
                    }
                    return this.getUTCFullYear()   + '-' +
                         f(this.getUTCMonth() + 1) + '-' +
                         f(this.getUTCDate())      + 'T' +
                         f(this.getUTCHours())     + ':' +
                         f(this.getUTCMinutes())   + ':' +
                         f(this.getUTCSeconds())   + 'Z';
                };
            You can provide an optional replacer method. It will be passed the
            key and value of each member, with this bound to the containing
            object. The value that is returned from your method will be
            serialized. If your method returns undefined, then the member will
            be excluded from the serialization.
            If the replacer parameter is an array of strings, then it will be
            used to select the members to be serialized. It filters the results
            such that only members with keys listed in the replacer array are
            stringified.
            Values that do not have JSON representations, such as undefined or
            functions, will not be serialized. Such values in objects will be
            dropped; in arrays they will be replaced with null. You can use
            a replacer function to replace those with JSON values.
            JSON.stringify(undefined) returns undefined.
            The optional space parameter produces a stringification of the
            value that is filled with line breaks and indentation to make it
            easier to read.
            If the space parameter is a non-empty string, then that string will
            be used for indentation. If the space parameter is a number, then
            the indentation will be that many spaces.
            Example:
            text = JSON.stringify(['e', {pluribus: 'unum'}]);
            // text is '["e",{"pluribus":"unum"}]'
            text = JSON.stringify(['e', {pluribus: 'unum'}], null, '/t');
            // text is '[/n/t"e",/n/t{/n/t/t"pluribus": "unum"/n/t}/n]'
            text = JSON.stringify([new Date()], function (key, value) {
                return this[key] instanceof Date ?
                    'Date(' + this[key] + ')' : value;
            });
            // text is '["Date(---current time---)"]'
        JSON.parse(text, reviver)
            This method parses a JSON text to produce an object or array.
            It can throw a SyntaxError exception.
            The optional reviver parameter is a function that can filter and
            transform the results. It receives each of the keys and values,
            and its return value is used instead of the original value.
            If it returns what it received, then the structure is not modified.
            If it returns undefined then the member is deleted.
            Example:
            // Parse the text. Values that look like ISO date strings will
            // be converted to Date objects.
            myData = JSON.parse(text, function (key, value) {
                var a;
                if (typeof value === 'string') {
                    a =
/^(/d{4})-(/d{2})-(/d{2})T(/d{2}):(/d{2}):(/d{2}(?:/./d*)?)Z$/.exec(value);
                    if (a) {
                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
                            +a[5], +a[6]));
                    }
                }
                return value;
            });
            myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
                var d;
                if (typeof value === 'string' &&
                        value.slice(0, 5) === 'Date(' &&
                        value.slice(-1) === ')') {
                    d = new Date(value.slice(5, -1));
                    if (d) {
                        return d;
                    }
                }
                return value;
            });
    This is a reference implementation. You are free to copy, modify, or
    redistribute.
*/
/*jslint evil: true, strict: false, regexp: false */
/*members "", "/b", "/t", "/n", "/f", "/r", "/"", JSON, "http://", apply,
    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
    getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
    lastIndex, length, parse, prototype, push, replace, slice, stringify,
    test, toJSON, toString, valueOf
*/
// Create a JSON object only if one does not already exist. We create the
// methods in a closure to avoid creating global variables.
if (!this.JSON2)
{
    this.JSON2 = {};
}
(function () {
    "use strict";
    function f(n) {
        // Format integers to have at least two digits.
        return n < 10 ? '0' + n : n;
    }
    if (typeof Date.prototype.toJSON !== 'function') {
        Date.prototype.toJSON = function (key) {
            return isFinite(this.valueOf()) ?
                   this.getUTCFullYear()   + '-' +
                 f(this.getUTCMonth() + 1) + '-' +
                 f(this.getUTCDate())      + 'T' +
                 f(this.getUTCHours())     + ':' +
                 f(this.getUTCMinutes())   + ':' +
                 f(this.getUTCSeconds())   + 'Z' : null;
        };
        String.prototype.toJSON =
        Number.prototype.toJSON =
        Boolean.prototype.toJSON = function (key) {
            return this.valueOf();
        };
    }
    var cx = /[/u0000/u00ad/u0600-/u0604/u070f/u17b4/u17b5/u200c-/u200f/u2028-/u202f/u2060-/u206f/ufeff/ufff0-/uffff]/g,
        escapable = /[///"/x00-/x1f/x7f-/x9f/u00ad/u0600-/u0604/u070f/u17b4/u17b5/u200c-/u200f/u2028-/u202f/u2060-/u206f/ufeff/ufff0-/uffff]/g,
        gap,
        indent,
        meta = {    // table of character substitutions
            '/b': '//b',
            '/t': '//t',
            '/n': '//n',
            '/f': '//f',
            '/r': '//r',
            '"' : '//"',
            '//': '////'
        },
        rep;
    function quote(string) {
        escapable.lastIndex = 0;
        return escapable.test(string) ?
            '"' + string.replace(escapable, function (a) {
                var c = meta[a];
                return typeof c === 'string' ? c :
                    '//u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
            }) + '"' :
            '"' + string + '"';
    }
    function str(key, holder) {
        var i,          // The loop counter.
            k,          // The member key.
            v,          // The member value.
            length,
            mind = gap,
            partial,
            value = holder[key];
        if (value && typeof value === 'object' &&
                typeof value.toJSON === 'function') {
            value = value.toJSON(key);
        }
        if (typeof rep === 'function') {
            value = rep.call(holder, key, value);
        }
        switch (typeof value) {
        case 'string':
            return quote(value);
        case 'number':
            return isFinite(value) ? String(value) : 'null';
        case 'boolean':
        case 'null':
            return String(value);
        case 'object':
            if (!value) {
                return 'null';
            }
            gap += indent;
            partial = [];
            if (Object.prototype.toString.apply(value) === '[object Array]') {
                length = value.length;
                for (i = 0; i < length; i += 1) {
                    partial[i] = str(i, value) || 'null';
                }
                v = partial.length === 0 ? '[]' :
                    gap ? '[/n' + gap +
                            partial.join(',/n' + gap) + '/n' +
                                mind + ']' :
                          '[' + partial.join(',') + ']';
                gap = mind;
                return v;
            }
            if (rep && typeof rep === 'object') {
                length = rep.length;
                for (i = 0; i < length; i += 1) {
                    k = rep[i];
                    if (typeof k === 'string') {
                        v = str(k, value);
                        if (v) {
                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
                        }
                    }
                }
            } else {
                for (k in value) {
                    if (Object.hasOwnProperty.call(value, k)) {
                        v = str(k, value);
                        if (v) {
                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
                        }
                    }
                }
            }
            v = partial.length === 0 ? '{}' :
                gap ? '{/n' + gap + partial.join(',/n' + gap) + '/n' +
                        mind + '}' : '{' + partial.join(',') + '}';
            gap = mind;
            return v;
        }
    }
    if (typeof JSON2.stringify !== 'function') {
        JSON2.stringify = function (value, replacer, space) {
            var i;
            gap = '';
            indent = '';
            if (typeof space === 'number') {
                for (i = 0; i < space; i += 1) {
                    indent += ' ';
                }
            } else if (typeof space === 'string') {
                indent = space;
            }
            rep = replacer;
            if (replacer && typeof replacer !== 'function' &&
                    (typeof replacer !== 'object' ||
                     typeof replacer.length !== 'number')) {
                throw new Error('JSON2.stringify');
            }
            return str('', {'': value});
        };
    }
    if (typeof JSON2.parse !== 'function') {
        JSON2.parse = function (text, reviver) {
            var j;
            function walk(holder, key) {
                var k, v, value = holder[key];
                if (value && typeof value === 'object') {
                    for (k in value) {
                        if (Object.hasOwnProperty.call(value, k)) {
                            v = walk(value, k);
                            if (v !== undefined) {
                                value[k] = v;
                            } else {
                                delete value[k];
                            }
                        }
                    }
                }
                return reviver.call(holder, key, value);
            }
            text = String(text);
            cx.lastIndex = 0;
            if (cx.test(text)) {
                text = text.replace(cx, function (a) {
                    return '//u' +
                        ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
                });
            }
            if (/^[/],:{}/s]*$/
.test(text.replace(///(?:["http:////bfnrt]|u[0-9a-fA-F]{4})/g, '@')
.replace(/"[^"http:///n/r]*"|true|false|null|-?/d+(?:/./d*)?(?:[eE][+/-]?/d+)?/g, ']')
.replace(/(?:^|:|,)(?:/s*/[)+/g, ''))) {
                j = eval('(' + text + ')');
                return typeof reviver === 'function' ?
                    walk({'': j}, '') : j;
            }
            throw new SyntaxError('JSON2.parse');
        };
    }
}());

第二、調用頁的內容
注意:調用js文件的路徑需要自己調整,這點如果不會,那就別再繼續看了。
復制代碼 代碼如下:

   <script src="../jquery/jquery-1.5.2.min.js" type="text/javascript"></script>
    <script src="../json2.js" type="text/javascript"></script>
        var a = '{ "name": "tom", "sex": "男", "age": "24" }';    // 用于組成json的字符串;
        alert("用于組成json的字符串:【"+a+"】");
        var b = JSON2.parse(a);   // 把字符串a轉換為json格式b
        var c = JSON2.stringify(a); //把json格式b轉換為字符串c
        alert("轉換后的字符串:【"+c+"】");
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲人成在线播放| 色综合久久88| 国产精品视频在线播放| 欧美激情2020午夜免费观看| 国产成人av在线播放| 91社区国产高清| 国产精品久久久久久av| xxx成人少妇69| 久久久久中文字幕2018| 欧美视频中文字幕在线| 亚洲欧洲日韩国产| 国外成人在线视频| 最近2019年中文视频免费在线观看| 欧美在线播放视频| 日韩成人xxxx| 亚洲黄色有码视频| 久久久99免费视频| 亚洲欧美一区二区精品久久久| 2019中文字幕免费视频| 久久在线免费观看视频| 在线精品高清中文字幕| 色小说视频一区| 午夜精品久久久久久久久久久久久| 亚洲第一av在线| 国产精品亚洲综合天堂夜夜| 黑人极品videos精品欧美裸| 国产99久久精品一区二区| 亚洲一区二区自拍| 国产精品一区专区欧美日韩| 97超级碰碰人国产在线观看| 色综合导航网站| 色青青草原桃花久久综合| 国产精品2018| 久久av在线看| 美女黄色丝袜一区| 亚洲乱码国产乱码精品精天堂| 国产精品中文在线| 国产在线999| 亚洲天堂影视av| 伊人久久大香线蕉av一区二区| 一区二区三区四区视频| 亚洲国模精品一区| 国产极品精品在线观看| 国产美女久久精品| 亚洲最大激情中文字幕| 日本精品va在线观看| 一区二区三区回区在观看免费视频| 亚洲欧美日韩成人| 日韩av免费在线看| 欧美黑人视频一区| 亚洲欧美制服综合另类| 一区二区三区天堂av| 欧美性生交xxxxxdddd| 亚洲久久久久久久久久| 日韩激情视频在线| 热门国产精品亚洲第一区在线| 91国内免费在线视频| 亚洲最大av网| 成人写真视频福利网| 夜夜嗨av一区二区三区免费区| 亚洲欧美日韩高清| xvideos亚洲| 国产一区二区三区在线免费观看| 亚洲国产精品成人一区二区| 日韩在线免费高清视频| 亚洲国产成人在线视频| 欧美日韩中文字幕日韩欧美| 国产精品久久久久久久久久久久久久| 欧美午夜片在线免费观看| 国产福利精品在线| 久久久免费电影| 成人免费自拍视频| 精品国产91乱高清在线观看| 国产精品久久久久久久久| 欧美性猛xxx| 色偷偷91综合久久噜噜| 久久久女女女女999久久| 国产盗摄xxxx视频xxx69| 久久精品福利视频| 国产精品网站入口| 国产精品成人一区二区三区吃奶| 国产精品美女无圣光视频| 91亚洲国产成人久久精品网站| 九九综合九九综合| 日韩av在线播放资源| 日本一区二区三区四区视频| 欧美日韩国产一区二区| 亚洲qvod图片区电影| 成人免费看片视频| 中文字幕亚洲一区在线观看| 亚洲欧美一区二区激情| 国产精品久久久久久久av电影| 欧美成人激情视频免费观看| 91九色视频导航| 国产精品久久久久福利| 亚洲日本成人网| 久久综合电影一区| 青青在线视频一区二区三区| 国产精品久久在线观看| 一区国产精品视频| 欧美激情图片区| 动漫精品一区二区| 欧美国产日产韩国视频| 久久艹在线视频| 5252色成人免费视频| 欧美精品一区在线播放| 91av免费观看91av精品在线| 日韩高清免费在线| 国外成人免费在线播放| 欧洲亚洲在线视频| 日韩亚洲在线观看| 欧美激情精品久久久久久免费印度| 国产成人啪精品视频免费网| 国产精品久久久久久久午夜| 日本成人黄色片| 51视频国产精品一区二区| 久久国产精品亚洲| 国产精品成av人在线视午夜片| 日韩在线观看免费高清完整版| 热久久免费视频精品| 久久久成人精品视频| 九九热精品视频国产| 欧美高清不卡在线| 国产精品va在线| 亚洲高清免费观看高清完整版| 日韩av最新在线观看| 国产精品久久久久久久久久久新郎| 成人深夜直播免费观看| 亚洲精品国产精品久久清纯直播| 亚洲第一区在线观看| 精品一区二区三区四区在线| 午夜精品国产精品大乳美女| 亚洲视频第一页| 大量国产精品视频| 在线午夜精品自拍| 午夜精品久久久久久久白皮肤| 成人午夜黄色影院| 亚洲一区二区三区乱码aⅴ| 日韩av一区二区在线| 精品久久香蕉国产线看观看gif| 992tv在线成人免费观看| 亚洲一区二区三区成人在线视频精品| 亚洲精品白浆高清久久久久久| 亚洲日韩欧美视频| 欧美性猛交xxxx久久久| 亚洲欧洲日产国码av系列天堂| 91超碰caoporn97人人| 国产精品久久久久久久久男| 91久久精品久久国产性色也91| 久久精品色欧美aⅴ一区二区| 中文字幕一区电影| 国产成人激情小视频| 精品中文字幕视频| 亚洲xxxxx| 综合久久五月天| 亚洲精品在线视频| 亚洲天堂网在线观看| 欧美猛少妇色xxxxx| 精品久久在线播放| 亚洲国产高清高潮精品美女| 欧美激情成人在线视频| 久久亚洲综合国产精品99麻豆精品福利| 成人在线中文字幕| 日本久久久久久|