1
我正在看MDN's "Using native JSON"。我有3個關於JSON.stringify
方法的問題。關於ECMAScript中JSON.stringify的問題
問題1:
var foo = {
"foundation": "Mozilla",
"model": "box",
"week": 45,
"transport": "car",
"month": 7
},
censor = function (key, value) {
if (typeof value === 'string') {
return;
}
return value;
};
console.log(JSON.stringify(foo, censor)); // String: {"week":45,"month":7}
以上驗證碼做工精細。但爲什麼下面的代碼不能正常工作?
var foo = {
"foundation": "Mozilla",
"model": "box",
"week": 45,
"transport": "car",
"month": 7
},
censor = function (key, value) {
if (typeof value !== 'string') {
return;
}
return value;
};
console.log(JSON.stringify(foo, censor)); // undefined
問題2:
請注意下面的代碼:
var foo = {
"foundation": "Mozilla",
"model": "box",
"week": 45,
"transport": "car",
"month": 7
},
censor = function (key, value) {
return 2;
};
console.log(JSON.stringify(foo, censor)); // String: 2
我想我的代碼應該得到下面的字符串,因爲「如果返回一個數字,對應於這個數字的字符串用作添加到JSON字符串時屬性的值。「 (從https://developer.mozilla.org/En/Using_native_JSON引用)。
{"foundation":2,"model":2,"week":2,"transport":2,"month":2}
但我只是得到一個字符串2
。爲什麼?
問題3:
如果我想獲得{"foundation":2,"model":2,"week":2,"transport":2,"month":2}
,我應該怎麼更改密碼?
非常感謝!