首先,準備新建一個js檔。以下是JSON2.js的內容,把內容拷到js檔案中,以便呼叫:
/*
http://www.JSON.org/json2.js
公共領域。
沒有明示或暗示的保證。使用風險自負。
請參閱 http://www.JSON.org/js.html
部署前應縮小此程式碼。
請參閱 http://javascript.crockford.com/jsmin。 html
使用您自己的複製。從您無法控制的伺服器載入程式碼是極其不明智的。
此檔案建立一個全域 JSON 對象,其中包含兩個方法:stringify
和 parse。
JSON.stringify(value, replacementr, space )
value
替換符 一個選用參數,以決定物件
它可以是
函數或字串陣列。
空格 一個選用參數,並指定嵌套結構的縮排
若省略,文字將
為 包裝,而額外的空格。如果它是一個數字,
它將指定於每個
如果它是字串(例如 't' 或 ' '),
它包含在每個層級上所使用的字元字元。
此方法從 JavaScript 值產生 JSON 文字。
當物件找到 value 後,若物件包含 toJSON
toJSON 方法不會序列化:它傳回由應序列化的名稱/值對錶示的
值,
toJSON 方法
將傳遞與值相關的鍵,將
// 將整數格式化至至少兩位數。
return n }
, this.getUTCFullYear() '-'
Month() 1) '-'
f(this.get UTCDate f(this.getUTCHours ( )) ':'
f(this.getUTCSeconds()) 'Z';
方法。它將傳遞每個成員的
鍵結和值,並將其綁定至包含的
物件。從您的方法傳回的數值將會序列化
。如果您的方法回傳未定義,則該成員將
排除在序列化之外。
如果replacer 參數是字串陣列,則它將
用於選擇序列化的成員。它會過濾結果
,以可將具有取代陣列中所列出的鍵的成員使用
字串化。
沒有 JSON 表示形式的數值,例如未定義或
函數,且不會被序列化。物件中的此類值將被刪除
;在陣列中,它們將被替換為 null。您可以使用
替換函數替換為 JSON 值。
JSON.stringify(undefined) 回傳未定義。
選購的 space 參數產生
值的字串
若空格參數為非空白字串,則此字串將
進行縮減。如果 space 參數是數字,則
縮排將如此多空格。
範例:
text = JSON.stringify([) e",{"pluribus":"unum" }]'
text = JSON.stringify(['e', {pluribus: 'unum'}], null, 't ');
"pluribus": "unum"nt}n]'
text = JSON.stringify([new Date()], function ( key, value) { ?
' Date(' this[key] ')' : value;
});
// text is '["Date(---current time---)"]'
物件或陣列。
且可被拋出 SyntaxError 異常。
可選擇的 reviver 參數是可過濾且
轉換結果的函數。它接收每個鍵和值,
並使用其回傳值來取代原始值。
若它回復已接收的內容,結構則不會被修改。
若它傳回未定義,則成員已刪除。
範例:
// 解析文字。看起來像 ISO 日期字串的值將
// 轉換為 Date 物件。
myData = JSON.parse(text, function (key, value) {
if (typeof value === '字串') {
a =
/^ (d{4})-(d{2})-(d{2})T(d{2}):(d{2 }):(d{2}(?:.d*)?)Z $/.exec(value);
if (a) {
C( a[1], a[2] - 1, a[3], a[4],
a[5], a[6])); myData = JSON.parse('["日期(09/ 09/2001)"]', function (key, value) {
var d;
value.slice(0, 5) === '日期(' &&
value.slice(-1) === ')') { return d;
}
回值;
);
這是一個參考實作。您可以自由複製、修改或
重新分發。
*/
/*jslint 邪惡: true, strict: false, regexp: false */
/*members "", "b" , "t", "n", "f", " r", """, JSON, "\", apply,
呼叫, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
getUTCMinutes, getUTCHours,
我, length, parse, prototype, Push, Replace, slice, stringify,
test, toJSON, toString, valueOf
*/
// 僅建立JSON 物件我們在閉包中建立
//方法以避免全域建立變項。 f(n) {
// 將整數格式化為至少兩位數。 toJSON !== 'function') {
Date.prototype.toJSON = function (key) {
this.getUTCFullYear() '-'
f(this.getUTCMonth() 1) '-'
f(this.getUTCDate()) 'T'
fthis.get f(this.getUTCMinutes() ) ':'
f(this.getUTCSeconds()) 'Z' : null;
Number.prototype.toJSON =
Boolean.prototype .toJSON = function (key) {
return this.valueOf();
u0604u070fu17b4u17b5u200c-u200fu2028-u202fu2060-u206fuffeffufff0-uffff]/g,
可轉義= /[\"x00-x1fx7f-x9 fu00adu0600-u0604u070fu17b4u17b5u200c-u200fu2028-u17b4u17b5u200c-u200fu2028-u0 間隙,
縮排,
meta = { //字號替換錶
'b': '\b',
' 'f': '\f',
'r': '\r',
'"' : '\"',
代表;
function quote(string) {
escapable.lastIndex = 0;
return escapable.test(string) ? return typeof c === 'string' ? c :
6)).slice(-4);
}) '"' :
'"' 字串'" ';
}
function str(key,holder) {
var i, // 循環計數器。
k, // 成員鍵。
v, // 成員值與位。
長度,且
心靈= 間隙,
value =holder[key];
if (value && typeof value === 'object' &&
=== '功能') {
value = value.toJSON(key);
value =rep.call(holder, key, value);
}
switch (typeof value) {
);
case 'number':
return isFinite(value ) ? String(value) : 'null';
case 'boolean':
case 'null': if (! value) {
部份= [];
if (Object.prototype.toString.apply(value ) === ' [對象陣列]') {
length = value.length;
partial[i] = str(i, value) || 'null';
}
間隙? '[n' 間隙
頭腦']' :
間隙=頭腦;
的 v;
if (rep && typeof rep === 'object') {
for (i = 0; i k = 代表[i];
if (typeof k === 'string') {
v = str(k, value);
if (v) {
partial.push(quote(k ) (間隙? ': ' : ':') v);
} } else {
if (Object.hasOwnProperty. call(value, k)) {
v = str(k, value if (v) {
會在中使用「上「)」() v.);
}
}
}
v = 部份. 長度 === 0 ? '{}' :
:'{'partial.join(',')'}' ;
透明度=頭部值;
return v;
ify !== 'function') {
JSON2.stringify = 函數( 、替換、符空格){
var i ;
if (typeof space === 'number') {
為(我= 0; i 的縮排= ' ';
} else if (typeof space === 'string') {
縮排= 空格;
}
rep = replacer;
if (replacer && typeof replacer !== 'function' &&
(type of replacer !== 'object' ||
typeof replacer.length !== '数値' )) {
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(値, k)) {
v = walk(value, k);
if (v !== 未定義) {
value[k] = v;
} else {
値を削除[ k];
}
}
}
}
return reviver.call(holder, key, value);
}
text = String(text);
cx.lastIndex = 0;
if (cx.test(text)) {
text = text.replace(a) {
return '\u' > ('0000 ' a.charCodeAt(0).toString(16)).slice(-4);
});
}
if (/^[],:{}s]*$/
.test(text.replace(/\(?:["\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
.replace(/"[^"\nr]*"|true|false|null|-?d (?:.d*)?(?:[eE][ - ]?d )?/g, ']')
.replace(/(?:^|:|,)(?:s*[) /g, ''))) {
j = eval ( '(' text ')');
return of reviver === 'function'; 🎜>
2 番目、呼び出しページのコンテンツ
注: js ファイルを呼び出します。パスは自分で調整する必要があります。これを知らない場合は、読み続けないでください。 🎜>
コードをコピーします
コードは次のとおりです: