JSON对象创建和JSON数组操作

JSON Object creation and JSON array manipulation

本文关键字:JSON 操作 数组 创建 对象      更新时间:2023-09-26

这基本上是一个关于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会在"First Name"字段中输出"Holla"。但是,该声明是如何否定前面声明的任何效力的呢?(即13号线)?

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

你首先说:用fname写"Jonatan"。然后你说用fname写"Holla"。所以你在结尾只看到"霍拉"。

lname为空,因为您不再设置它,而是设置了2次fname。