带有reviver函数的JSON.parse返回未定义 [英] JSON.parse with reviver function returns undefined
本文介绍了带有reviver函数的JSON.parse返回未定义的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是JSON新手,并且在 JSON.parse()
:
I am new to JSON and getting this exception while using reviver parameter in JSON.parse()
:
TypeError: Cannot read property 'name' of undefined(…).
没有reviver参数代码可以正常工作,但是使用reviver参数时,它将引发上述异常.为什么会这样?
Without reviver parameter code works fine but with reviver parameter it throws the above exception. Why is that happening ?
var str = ' { ' +
' "name" : "Username", ' +
' "fname" : "Fathername" '
+ ' } ';
var jObj = JSON.parse(str, function (a, b) {
console.log(a + "=>" + b);
});
document.write(
"<h1>" + jObj.name + "</h1>",
"<h2>" + jObj.fname + "</h2>"
);
推荐答案
因为您的reviver函数隐式返回undefined
.
Because your reviver function returns implicitly undefined
.
您必须返回一些内容,即变量b
:
You have to return something, i.e. the variable b
:
var str = JSON.stringify({ name: 'Username', fname: 'Fathername' });
var jObj = JSON.parse(str, function (a, b) {
console.log(a, '=>', b);
return b;
});
document.write('<h1>' + jObj.name + '</h1>', '<h2>' + jObj.fname + '</h2>');
这篇关于带有reviver函数的JSON.parse返回未定义的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文