var obj = {
name: "chen",
age: 123,
test: undefined,
sayName:function(){
console.log(this.name);
}
}
function stringify(obj){
let res = '';
let cur;
if (obj === null) {
return String(obj);
}
switch(typeof obj){
case 'number':
case 'boolean':
return String(obj);
case 'string':
return '"' + obj + '"';
case 'undefined':
case 'function':
return undefined
}
switch(Object.prototype.toString.call(obj)){
case "[object Object]":
res += "{";
for (let i in obj){
if (obj.hasOwnProperty(i)){
cur = stringify(obj[i]);
if (cur !== undefined){
res += '"' + i + '":' + cur + ',';
}
}
}
// 去除最后多一个的,
if (res !== '{'){
res = res.slice(0, -1);
}
res += '}';
return res;
case "[object Array]":
res += '[';
for (let i=0; i<obj.length; i++){
cur = stringify(obj[i]);
if (cur === undefined){ // undefined, null ==> null
cur = null;
}
res += cur + ',';
}
if (res !== '['){
res = res.slice(0,-1);
}
res += ']';
return res;
}
// var arr = [1,2, undefined, null];
// JSON.stringify(arr) ==>"[1,2,null,null]"
}
console.log(stringify([1,2,null, undefined]));
console.log(stringify(obj));
console.log(JSON.stringify(obj));
console.log(JSON.stringify([1,2,null, undefined]));
javascript-JSON.stringify实现
最新推荐文章于 2022-08-28 09:36:23 发布