MDNの「ネイティブJSONの使用」を見ています。そして、私はそのJSON.stringify
方法について3つの質問があります。
質問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}
、どのようにコードを変更する必要がありますか?
どうもありがとうございます!