JSON.Stringify替换函数无法获取键值

时间:2016-04-17 11:36:50

标签: javascript jquery json

我正在使用JSON.stringify及其replacer参数。但是在replacer参数中我无法得到键和值,而不是我得到键值为空字符串""和值作为完整的JSON对象。我在代码中犯了什么错误?请清除它。

var replacer=function(key,value){
        debugger; 
    }
    $(function () {
       JSON.stringify({"name":'xxxxx'},replacer)
    });

我需要获得关键字" name"价值为" xxxxx"

2 个答案:

答案 0 :(得分:6)

MDN - JSON.stringify(): The replacer parameter

  

[...]最初它被一个空键调用,表示正在进行字符串化的对象,然后为被字符串化的对象或数组上的每个属性调用它。[...]

在第一次迭代中,您将整个对象{"name":'xxxxx'}视为value, 但是因为你从替换函数返回undefined,整个对象将被undefined替换,因此不会发生带有值/键对的下一次迭代。

如果您返回value,您将看到下一次迭代发生。

var replacer = function(key, value) {
  console.dir(arguments);
  return value;
}

JSON.stringify({
  "name1": 'xxxxx'
}, replacer);

答案 1 :(得分:-1)

var replacer=function(key,value){
    var json_obj = JSON.parse(value);
    var name = json_obj.name;

}
$(function () {
   JSON.stringify({"name":'xxxxx'},replacer)
});