IE 6,7下のJSON.stringify(),JSON.parse()使用-20 chapter(拡張読書)
3265 ワード
IE 6,7はJSONオブジェクトをサポートしておらず、JSONは使用できない.stringify(),JSON.parse(),
したがって、は、jsonデータをシーケンス化することができる、古いブラウザに対してjsonデータをシーケンス化する方法を書くことができる. は、jsonデータをjsオブジェクトに解析する方法を書くこともできます.もちろん、evalを直接使用してjsonデータを解析することもできます(セキュリティ上の危険性が考慮されている場合) またはあなたのプロジェクトでjQueryを使用し、直接jQueryを使用します.parseJSON(json))はいずれもjsonデータを解析できるタスクであり, または導入(現在は無効)
だからここを見てみるともっと役に立つかもしれません
上記のコードソース:
mark:『高程三』20章拡張読書ノート
したがって、
<!--[if lt IE 9]>
<script src="http://www.json.org/json2.js"></script>
<![endif]-->
だからここを見てみるともっと役に立つかもしれません
/*
* method : stringify(obj);
* return : json string
* source : https://gist.github.com/754454
*/
var stringify = function (obj) {
// IE8+ (ff,chrome,safari JSON ), JSON.stringify()
if (window.JSON) {
return JSON.stringify(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);
// fix.
var self = arguments.callee;
for (n in obj) {
v = obj[n];
t = typeof(v);
if (obj.hasOwnProperty(n)) {
if (t == "string") v = '"' + v + '"'; else if (t == "object" && v !== null)
// v = jQuery.stringify(v);
v = self(v);
json.push((arr ? "" : '"' + n + '":') + String(v));
}
}
return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
}
};
/*
* method : parse(json string)
* return : js
*/
var parse = function (jsonString) {
if (window.JSON) {
return window.JSON.parse(s);
}
// jquery parseJSON(s)
return $.parseJSON(jsonString);
};
// :
var gather = {
id : 1314,
name : 'pom',
infor : {
age : 20,
sex : 'man',
marry : false,
identity : 622421,
habit : [' ',' ',' ',' ',true]
},
family : [' ',' ',' '],
likeGames : ['PCgame','Netgame'],
};
// json
var originalJsonText = JSON.stringify(gather,null,4);
var customJJsonText = stringify(gather);
console.log(originalJsonText);
console.log(customJJsonText);
//json js (Object,Array,String...)
var evalObj = eval('(' + customJJsonText + ')');
var originalObj = JSON.parse(customJJsonText);
var jqueryObj = $.parseJSON(customJJsonText);
console.log(evalObj);
console.log(originalObj);
console.log(jqueryObj);
上記のコードソース:
https://gist.github.com/754454
mark:『高程三』20章拡張読書ノート