我正在尝试运行以下代码,但在控制台中继续出现Uncaught SyntaxError: Unexpected token :
错误。我似乎无法以json的名义逃脱冒号。
<p id="demo"></p>
<script>
var text = '{"employees":[' +
'{"first:Name":"John","lastName":"Doe" },' +
'{"first:Name":"Anna","lastName":"Smith" },' +
'{"first:Name":"Peter","lastName":"Jones" }]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML =
text.employees[1].first:Name ;
</script>
任何解决此问题的帮助都会很棒。最终,JSON将来自Web响应,因此无法更改文本。
答案 0 :(得分:3)
document.getElementById("demo").innerHTML = text.employees[1].first:Name;
^__error here
document.getElementById("demo").innerHTML = text.employees[1]['first:Name']
:
{"first:Name":"John","lastName":"Doe" }
^___ is this intentional?
答案 1 :(得分:0)
text.employees[1].first:Name ;
不是有效的JavaScript,您需要像这样访问密钥:
text.employees[1]['first:Name'];
答案 2 :(得分:0)
你得到Unexpected token :
,因为当找到:
时,JS需要一个点符号。
您可以使用bracket notation
来解决此问题,以便访问对象的属性first:Name
。
可在此处找到更多信息:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Property_accessors
你修好了例子:
var text = '{"employees":[' +
'{"first:Name":"John","lastName":"Doe" },' +
'{"first:Name":"Anna","lastName":"Smith" },' +
'{"first:Name":"Peter","lastName":"Jones" }]}';
var obj = JSON.parse(text);
document.getElementById("demo").innerHTML = obj.employees[1]['first:Name'];
&#13;
<dv id="demo"></dv>
&#13;