日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 編程 > JSP > 正文

與JSON相關(guān)的一些函數(shù)

2024-09-05 00:23:39
字體:
供稿:網(wǎng)友

JSON作為一種輕量的數(shù)據(jù)傳輸格式,越來越受到人們的青睞。下面是我仿照Prototype的一些實現(xiàn)。

JSONFilter:/^///*-secure-([/s/S]*)/*///s*$/, 

unfilterJSON:function(json,filter) { 

    return json.replace((filter || dom.JSONFilter), function(a,b){ 

        return b || ""

    }); 

},

JSONFilter完全抄自Prototype,因為后臺基本上只會傳輸兩種格式的東西給我們——文本(xmlhttp.responseText)與XML(xmlhttp.responseXML)。如果要json,我們可以eval一下,或者使用現(xiàn)代瀏覽器提供的JSON.parse方法。但問題就出在eval中,很容易出現(xiàn)XSS攻擊。如果文本是注釋就可以避免這問題,在Prototype中還檢察一下請求的來源。對于自家的網(wǎng)站的請求,我們完全可以在請求前處理一下,讓它變成如下格式:

var text = '/*-secure-/n{"name": "Violet", "occupation": "character", "age": 25}/n*/'

 dom.unfilterJSON(text) 

// -> '{"name": "Violet", "occupation": "character", "age": 25}'

到時我們用unfilterJSON函數(shù)提取合法的字段來eval就沒問題了。

第二個函數(shù),判斷字符串是否符合JSON的格式。JSON是有固定的格式,要求鍵必須被雙引號括起來。下面的函數(shù)提取自json2:

isJSONText:function(json){// 

    return /^[/],:{}/s]*$/.test(json.replace(///(?:["////bfnrt]|u[0-9a-fA-F]{4})/g, "@") 

        .replace(/"[^"///n/r]*"|true|false|null|-?/d+(?:/./d*)?(?:[eE][+/-]?/d+)?/g, "]") 

        .replace(/(?:^|:|,)(?:/s*/[)+/g, "")); 

},

第三個函數(shù),將符合JSON的格式的文本變成JSON對象。第二參數(shù)用于指明此文本是否安全(如,是否同源請求)。如果能用原生對象的parse方法就用原生的,否則動態(tài)解析它。之所以不用eval,是因為ecma那幫人頭腦發(fā)熱,想禁掉它。

        evalJSON: function( json ,sanitize) {   

            if ( !is(json,"String") || !json ) 

                return null; 

            json = dom.unfilterJSON(json); 

                        if ( !sanitize || dom.isJSONText(json) ) { 

                return window.JSON && window.JSON.parse ? 

                window.JSON.parse( json ) : (new Function("return " + json))(); 

            } else { 

                throw  "Invalid JSON: " + json; 

            } 

        } 

//http://www.21kaiyun.com

var data =dom.evalJSON( '{ "name": "Violet", "occupation": "character" }'); 

data.name; 

//-> "Violet"

第四函數(shù),將JSON對象變成文本。

// http://www.conghuacea.com

//   var a = [1,2,3,4,{aa:8}]; puts(dom.toJSON(a)) 

toJSON:function(obj){ 

    if (window.JSON && window.JSON.stringify) { 

        return JSON.stringify(obj) 

    } 

    if (typeof window.uneval == 'function') { 

        return uneval(obj); 

    } 

    if (typeof obj == 'object') { 

        if (!obj) { 

            return 'null'; 

        } 

        var list = []; 

        if (dom.is(obj,"Array")) { 

            for (var i=0,n=obj.length;i <n;i++) { 

                list.push(dom.toJSON(obj[i])); 

            } 

            return '[' + list.join(',') + ']'; 

        } else { 

            for (var prop in obj) { 

                if(obj[has](prop)) 

                    list.push('"' + prop + '":' + dom.toJSON(obj[prop])); 

            } 

            return '{' + list.join(',') + '}'; 

        } 

    } else if (typeof obj == 'string') { 

        return '"' + obj.replace(/(["'])/g, '//$1') + '"'; 

    } else { 

        return new String(obj); 

    } 

},

toJSON : function(obj) { 

    if(is(window.JSON,"JSON")){ 

        return JSON.stringify(obj) 

    } 

    function f(n) { 

        return n < 10 ? '0' + n : n; 

    } 

    var escapable = /[///"/x00-/x1f/x7f-/x9f/u00ad/u0600-/u0604/u070f/u17b4/u17b5/u200c-/u200f/u2028-/u202f/u2060-/u206f/ufeff/ufff0-/uffff]/g; 

    var meta = { 

        '/b': '//b', 

        '/t': '//t', 

        '/n': '//n', 

        '/f': '//f', 

        '/r': '//r', 

        '"' : '//"', 

        '//': '////'

    }; 

    function _char(c) { 

        return meta[c] ? meta[c] :'//u'+('0000'+(+(c.charCodeAt(0))).toString(16)).slice(-4); 

    } 

    function _string(s) { 

        return '"' + s.replace(escapable, _char) + '"'; 

    } 

    if(is(obj,"Date")){ 

        return  '"' + obj.getUTCFullYear() + '-' + 

        f(obj.getUTCMonth() + 1) + '-' + 

        f(obj.getUTCDate())      + 'T' + 

        f(obj.getUTCHours())     + ':' + 

        f(obj.getUTCMinutes())   + ':' + 

        f(obj.getUTCSeconds())   + 'Z"' ; 

    }else if(is(obj,"Number")){ 

        return isFinite(obj) ? obj+'' : 'null'; 

    }else if(is(obj,"Boolean")){ 

        return  obj+''

    }else if(is(obj,"String")){ 

        return _string(obj) 

    }else if(obj === null){ 

        return "null"

    }else if(is(obj,"Array")){ 

        return '[' + (dom.filter(obj,function(value){ 

            return dom.toJSON(value) !== undefined; 

        })).join(', ') + ']'; 

    }else if(is(obj,"Object")){ 

        var results = []; 

        dom.each(obj,function(value,key){ 

            value = dom.toJSON(value) 

            if (!value) 

                results.push(dom.toJSON(key) + ': ' + value); 

        }); 

        return '{' + results.join(', ') + '}'; 

    }else { 

        return undefined; 

    } 

},

Is函數(shù)

目前最精確的判定方法(不包括自定義類型)

//2011.1.19更新 

        var is = function (obj,type) { 

        return (type === "Null" && obj === null) || 

        (type === "Undefined" && obj === void 0 ) || 

        (type === "Number" && isFinite(obj)) || 

         Object.prototype.toString.call(obj).slice(8,-1) === type; 

    },

用法如下:

//***************示例一,判定數(shù)組與函數(shù) 

        var forEach = function(array,fn,bind){ 

          if(is(array,"Array") && is(Array.forEach,"Function")){ 

            array.forEach(fn,bind); 

          }else{ 

            for(var i=0,n=array.length;i<n;i++){ 

              i in array && fn.call(bind,array[i],i,array) 

            } 

          } 

        } 

//***************示例二,判定null 

var a = null

alert(is(a,"Null")) 

//***************示例二,判定undefined 

var b 

alert(is(b,"Undefined"))

另一個變種,直接返回表示類型的字符串

var getType = function (obj) { 

  var _toString = Object.prototype.toString,undefined; 

  return obj === null? "Null": 

    obj === undefined ? "Undefined": 

    _toString.call(obj).slice(8,-1); 

};

用法:

var arr = [1,2,3,4] 

      alert(getType(arr));//Array 

      var nil = null

      alert(getType(nil))//Null 

      var und ; 

      alert(getType(und))//Undefined 

      var spans = document.getElementsByTagName("span"); 

      alert(getType(spans)) //HTMLCollection 

      alert(getType(spans[0].childNodes))//NodeList

 

function isA (thing, canon) { 

  // special case for null and undefined 

  if (thing == null || canon == null) { 

    return thing === canon; 

  } 

  return Object.getPrototypeOf(Object(thing)) == Object.getPrototypeOf(Object(canon)); 

function isBool (thing) { 

  return isA(thing, true); 

function isNumber (thing) { 

  return isA(thing, 0) && isFinite(thing); 

function isString (thing) { 

  return isA(thing, ""); 

}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
成人h视频在线观看| 久久99精品久久久久子伦| 二区视频在线观看| 欧美1区免费| 欧美日韩精品三区| 免费高清特黄a大片| 日韩精品视频免费在线观看| 国内精品99| 蜜桃视频一日韩欧美专区| 日韩精品资源二区在线| 三级精品视频| 天堂中文在线视频| 亚洲区中文字幕| 午夜少妇久久久久久久久| 婷婷精品进入| 免费看黄资源大全高清| 日韩一级网站| 一区二区欧美国产| 日韩国产欧美在线视频| 国产日韩av一区| 中文字幕在线播出| 日韩视频不卡中文| 午夜福利一区二区三区| 日韩视频精品| 一区二区三区久久| 日韩精品中文在线观看| 91麻豆视频网站| 国产农村妇女精品一二区| 国产视频2区| 日本一级一片免费视频| 亚洲免费精品| 亚洲精品中文字幕乱码三区不卡| 日韩欧美专区在线| 99精品免费观看| 中文字幕日韩欧美| 亚洲国产综合久久| 国产一级视频| 日韩在线精品视频| 成人禁用看黄a在线| va中文字幕| 国产一区深夜福利| 国产91大片| 在线一区av| 国内国产区免费视频| 日韩中文字幕在线视频播放| 日韩在线精品| 天堂中文在线视频| 国产三级做爰在线观看| 一区二区在线观| 欧美日韩中文字幕视频| 亚洲大胆人体av| 欧美亚洲免费高清在线观看| av不卡免费看| 亚洲一区视频在线观看视频| 午夜一区二区三区| 日韩中文字幕在线视频观看| 日韩欧美国产亚洲| 91久久久久久久久| 国产激情在线视频| 国产视频97| 久久久精品国产免费观看同学| 欧美日韩尤物久久| 亚洲免费在线视频一区 二区 | 热久久精品国产| 国产91久久久久| 91精品在线国产| 精品一区二区在线观看视频| 天堂在线中文资源| 国产日韩中文在线| 欧美日韩综合高清一区二区 | 精品一二三四| 美日韩精品免费视频| 精品国产99| 不卡一区二区三区视频| 欧美日韩在线观看一区| 日本中文字幕在线观看| 中文字幕日韩欧美在线视频| 欧美日韩综合在线免费观看| 欧美不卡视频一区发布| 国产一级网站视频在线| 精品一区二区三区中文字幕在线| 精品久久久视频| 国产最新在线| 国产真实乱子伦精品视频| 人人做人人澡人人爽欧美| 国产黄色一级片| 一区二区欧美国产| 亚洲综合在线小说| 欧洲精品二区| 国产成人精品免费网站| 不卡av免费在线| 亚洲福利在线观看| 日韩精品中文在线观看| 欧美色视频一区二区三区在线观看| 欧美日韩在线精品成人综合网| 欧美三级日韩在线| 久久精品网站免费观看| 天堂在线中文资源| 精品无人国产偷自产在线| 中文字幕在线官网| 国产黄色在线网站| 91精品国产综合久久香蕉的特点| 999精品在线| 欧美xxxx中国| 国产日韩亚洲欧美| 日韩免费久久| 国产对白在线| 黄色资源在线观看| 国产在线拍揄自揄拍| 亚洲日本欧美日韩高观看| 亚亚洲欧洲精品| 国产蜜臀在线| 日韩欧美中文字幕视频| 国产亚洲二区| 日韩黄色在线播放| 久久久91精品| 久久99久久久久久久噜噜| 日韩国产欧美在线视频| 日韩欧美资源站| 欧美大片在线观看一区| 91精品网站| 欧美日韩中文国产| 91精品在线免费观看| 成人a在线观看| 欧美日韩国产91| 国产欧美久久久精品免费| 国产激情在线视频| 精品三级av| 欧美日本精品| 久久精品欧美日韩精品| 欧美日韩在线视频首页| 欧美激情一区二区三区在线| 亚洲一区在线观看视频| 亚洲一级二级| 日韩久久精品视频| 中文字幕在线观看播放| 日韩欧美国产高清| 中文字幕 乱码 中文乱码91| 亚洲精华国产欧美| 91久久久久久久久| 国产三级在线观看视频| 亚洲大片免费看| 久久久精品福利| 中文字幕亚洲国产| 国产中文伊人| 精品日韩av一区二区| 中文精品在线| 欧美日韩亚州综合| 中文字幕欧美日韩在线| 国产欧美三级| 日韩精品综合在线| 中文字幕欧美亚洲| 国产丝袜在线播放| 一区免费视频| 亚洲视频在线观看三级| 国产一区不卡精品| 日韩视频一区在线观看| 日韩高清不卡在线| 国产日韩第一页v| 欧美日韩中文字幕在线视频| 亚洲.国产.中文慕字在线| 亚洲欧洲一区二区天堂久久| 一区在线视频观看| 欧美亚洲天堂| 日韩高清不卡一区二区| 国产香蕉免费精品视频| 欧美一级久久久久久久久大| 国产视频二区| 伊人www22综合色| 成人福利一区| 日韩精品欧美在线| 日韩欧美国产亚洲| 精品日韩在线观看| 日韩亚洲欧美中文字幕| 国产欧美日韩精品在线| 欧美国产一级片| 亚洲免费播放| 91久久中文| 中文字幕亚洲一区二区av在线| 91www成人久久| 欧美日韩精品电影| 亚洲第一页中文字幕| 日韩不卡一二三区| 亚洲一区在线观看视频| 日韩视频精品在线| 中文字幕欧美日韩在线| 阿v免费在线观看| 国产黄色一区| 日韩欧美亚洲视频| 丰满少妇一区| 国产网站av| 日韩精品中文字幕第1页| 精品国产99| 亚洲女人天堂色在线7777| 日韩欧美在线看| 精品日韩av| 快she精品国产999| 亚洲一区中文字幕在线观看| 国产主播中文字幕| 中文字幕在线精品| 日韩三级在线播放| 日韩精品视频在线| 欧美日韩综合高清一区二区| 亚洲免费看av| 交视频在线观看国产| 一区二区视频在线| 欧美黄页在线免费观看| 中文字幕日韩在线视频| 国产不卡精品在线| 久久视频一区| 1区不卡电影| 欧美日韩国产高清| 亚洲三级网站| 中文字幕五月欧美| 偷窥国产亚洲免费视频| 日韩在线二区| 91精品视频在线| 欧洲精品在线一区| 国产三级精品网站| 日本va欧美va精品发布| 国产九九在线| 日韩精品a在线观看91| 91精品国产亚洲| 久久久99免费| 中文字幕欧美日韩va免费视频 | 国产婷婷色一区二区三区在线| 最新中文字幕在线播放| 国产日产一区二区| 91精品视频免费在线观看| 精品国产免费观看一区| 欧美日韩国产高清| 亚洲一区在线观看视频| 国产三级精品网站| 欧美日韩中文字幕综合视频| 91精品国产91久久| 91精品久久久久久久久久入口| 久久99精品久久久久子伦| 国产 欧美 日韩 在线| 在线手机中文字幕| 中文字幕在线视频久| a视频免费在线观看| 中文亚洲免费| 国产欧美日韩在线观看| 欧美日韩乱国产| 久久久久蜜桃| 日本免费看黄| 日韩中文字幕观看| 国产久卡久卡久卡久卡视频精品| 欧美日韩亚州综合| 久久精品国产2020观看福利| 99视频在线看| 久久99精品久久久久婷婷| 伊人国产视频| 中文字幕国产视频| 一区三区视频| 欧美日韩久久久| 一区二区高清视频| 国产一级片播放| 亚洲免费观看在线观看| 国产午夜精品一区二区三区视频| 欧美午夜影院在线视频| 日韩精品在线私人| 91精品国产综合久久香蕉最新版| 黄色在线资源| 国产在线播放一区二区| 国产手机精品视频| 国产福利一区二区在线精品| 免费视频中文字幕| 中文字幕日韩在线视频| 欧美日韩精品在线播放| 日韩中文字幕视频在线观看| 欧美日韩亚洲国内综合网俺| 午夜一区二区三区视频 | 亚洲黄色片在线观看| 欧美日韩国产综合视频在线观看中文| 日韩欧美色综合| 中文字幕精品在线| 亚洲国产福利视频| 亚洲免费观看在线观看| 亚洲视频电影在线| 欧美一级免费在线观看| 91欧美日韩| 黄色精品在线观看| 日韩欧美亚洲国产| 日韩黄色在线播放| 婷婷中文字幕在线观看| 欧美日韩高清在线播放| 亚洲免费专区| 国产乱码午夜在线视频| 国产www.大片在线| 91精品国产综合久久久久| 精品久久久视频| 日韩精品在线播放| 成人欧美亚洲| 中文字幕视频在线免费欧美日韩综合在线看| 久久精品蜜桃| 91欧美日韩麻豆精品| 日韩欧美综合| 精品人妻二区中文字幕| 欧美日韩亚洲一| 日韩精品在线视频| 精人妻一区二区三区| 91精品国产调教在线观看| 一区二区在线观看不卡| 中文字幕 亚洲一区| 欧美国产小视频| 久久精品女人| 欧美乱大交xxxxx免费| 美国av一区二区| 中文字幕久久av| 婷婷久久综合九色国产成人| 中文字幕乱码在线| 中文字幕日韩欧美在线| 亚洲国产福利视频| www高清在线视频日韩欧美| 精品久久在线| 精品中文字幕视频| 欧美亚洲免费高清在线观看| 最新中文字幕在线| 亚洲免费福利视频| 国产v日产∨综合v精品视频| 日韩激情一区| 天天综合天天添夜夜添狠狠添| 久久精品卡一| 高清国产一区| 欧美日韩在线不卡一区| 精品久久91| 日本精品二区| 最近中文字幕在线中文视频| 欧美日韩在线国产| 亚洲三级国产| 国产高清一区| 久久久精品网| 国产欧美日韩中文字幕| 亚洲成a人片在线www| 在线视频色在线| 亚洲福利精品| 欧美高清一级片在线| 国产区高清在线| 久久精品一二三| 国产不卡视频在线| 日韩午夜黄色| 中文字幕成人乱码在线电影| 欧美天堂一区二区| 久久精品蜜桃| 在线中文字幕网站| 欧美久久在线观看| 欧美日韩国产区| 日韩欧美中文字幕在线播放| 99中文字幕一区| 中文字幕乱码在线| 欧美日韩高清一区二区不卡| 精品无人国产偷自产在线| 久久精品蜜桃| 91亚洲欧美| 欧美啪啪一区| 亚洲 欧美综合在线网络| 国内不卡的二区三区中文字幕| xxxcom在线观看| 国产黄色精品| 成人禁用看黄a在线| 中文字幕4区| 国产欧美日韩久久| 亚洲第一中文字幕在线观看| 日韩视频在线一区二区| 综合图区亚洲白拍在线 | 国产丝袜一区二区| 欧美日韩性视频一区二区三区 | 欧美日韩国产免费| 91精品国产自产在线| 精品日韩欧美| 亚洲午夜av| 九一久久久久久| 日韩精品视频在线观看视频| 91精品在线免费| 在线不卡一区二区| 国产黄色高清在线| 久久精品一二三| 日韩欧美中文视频| 欧美不卡123| 人人做人人澡人人爽欧美| 国产精品福利视频一区二区三区| 九九在线精品| 日韩欧美99| 国产无套粉嫩白浆在线2022年| 国产中文伊人| 91麻豆视频网站| 欧美日韩免费视频| 精品福利二区三区| 国产一区在线不卡| 国产视频aaa| 欧美日韩精品区| 日韩欧美在线精品| 99久久婷婷| 国产激情在线| www..com日韩| 免费看日韩精品| 欧美日韩视频免费播放| 免费视频一区三区| 日韩a一区二区|