<script type="text/javascript">
var X = {
a: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}],
b: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}],
c: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}],
d: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}]
}
var str = JSON.stringify(X);
alert(str);
</script>
Run Code Online (Sandbox Code Playgroud)
这个对象有什么问题?它警告"Uncaught ReferenceError:john未定义"怎么来?
你需要约翰周围的报价.否则它指的是尚未创建的变量/对象:
var X = {
a: [{name:"john", phone:777},{name:"john", phone:777},{name:"john", phone:777}]
...
Run Code Online (Sandbox Code Playgroud)
如果john先前已定义,您的代码将是有效的:
var john = "john";
var X = {
a: [{name:john, phone:777},{name:john, phone:777},{name:john, phone:777}]
...
Run Code Online (Sandbox Code Playgroud)
现在john是一个表示字符串"john"的变量,JSON是有效的.
试试name: 'john',你希望它是一个字符串.
如果您只是编写john,它将被解释为查找名为的变量(包括可能的函数)john.由于它没有找到具有该名称的变量,因此它会说它没有定义.
phone如果值可以是类似的123-456-78(将被解释为123减去456减去78),同样将使用.如果只有数字,那么您的解决方案就像现在一样好,否则请使用'123-456-78'.