var json = { a: 123, b: '456' };

var json2 = JSON.parse(JSON.stringify(json));

只需要先使用 JSON.stringify() 转成字符串,再通过 JSON.parse() 转成一个新的 JSON 对象即可。

注:此方法只针对简单的 JSON 对象,如果对象中含有函数,则不能使用此方法。JSON.stringify(..) 在对象中遇到值为 undefined、function 和 symbol 时会自动将这个字段忽略,在数组中则会返回 null(以保证单元位置不变)。

可以通过第二个参数将函数转换为其它可显示的内容:

var a = [
    1,
    function(){ /*..*/ },
    2,
    function(){ /*..*/ }
];
JSON.stringify( a ); // "[1,null,2,null]"
JSON.stringify( a, function(key,val){
    if (typeof val == "function") {
        // 函数的ToBoolean强制类型转换
        return !!val;
    }
    else {
        return val;
    }
} );
// "[1,true,2,true]"

 

相关文章:

  • 2021-11-12
  • 2021-12-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-09
  • 2022-01-03
猜你喜欢
  • 2021-12-20
  • 2022-12-23
  • 2022-12-23
  • 2022-01-02
  • 2021-11-16
  • 2021-05-17
  • 2021-09-26
相关资源
相似解决方案