JSON对象创建和JSON数组操作

时间:2012-02-17 17:50:28

标签: javascript json arrays

这基本上是关于JSON脚本解码方式的理论问题。我是JSON和JavaScript的新手,所以参加了一个教程。它给了我一些示例代码来处理。我发现这是因为我犯了一个错误。示例代码是 -

<html>
<body>
<h2>Create Object from JSON String</h3>
<p>First Name: <span id="fname"></span></p> 
<p>Last Name: <span id="lname"></span></p>
<script type="text/javascript">
var employees = [
{ "firstName" : "John" , "lastName" : "Doe" }, 
{ "firstName" : "Anna" , "lastName" : "Smith" }, 
{ "firstName" : "Peter" , "lastName" : "Jones" }, ];
employees[1].firstName="Jonatan";
employees[2].lastName="Holla";
document.getElementById("fname").innerHTML=employees[1].firstName;
document.getElementById("lname").innerHTML=employees[2].lastName;
</script>

</body>
</html>

我会得到以下输出 -

Create Object from JSON String

First Name: Jonatan

Last Name: Holla

但是我通过修改代码的第14行意外地犯了一个错误。我没有输入“lname”,而是再次键入“fname”。

document.getElementById("fname").innerHTML=employees[2].lastName;

它给出了以下输出 -

Create Object from JSON String

First Name: Holla

Last Name:

为什么会这样?同意第二次在fname上调用getElementId导致在“名字”字段中输出“Holla”。但是,该声明如何否定前面陈述的任何影响? (即第13行)?

1 个答案:

答案 0 :(得分:2)

它不会否定它,它会覆盖它。

你先说:在fname中写下“Jonatan”。然后你说在fname中写“Holla”。所以你最后只看到“Holla”。

lname是空的,因为你不再设置它 - 而是将fname设置为2次。