繁体   English   中英

在javascript中访问对象属性

[英]accessing object properties in javascript

我写了这段代码,当我想访问对象属性时,它总是说未定义。 谁能指出我的错误。

错误味精图片

function readXML()
{
    var xml=new XMLHttpRequest();
    xml.open('GET','index.json',false);
    xml.send();
    var xmlData=xml.responseText;
    document.getElementById("demo").innerHTML =
    xmlData.firstName + " " + xmlData.lastName;


}

json文件

{firstName:"John", lastName:"Doe", age:20}

我记得曾因为尝试使用它而读过有关此内容的文章,但您缺少一个简单的函数,该函数称为请求的每个状态更改

编辑,更正功能

意识到您已经为async选项设置了,false) ,它已被弃用并且不再受支持,因此此功能是必需的。

    xml.onreadystatechange = function()
    {
      if (xml.readyState == 4 && xml.status == 200)
      {
        var xmlData = JSON.parse(xml.responseText);
        document.getElementById("demo").innerHTML = xmlData.firstName + " " + xmlData.lastName;
      }
   };

该代码就在xml.open()命令上方。

在请求状态的每次更改时都会调用此函数,如果未收到xml.status 200 (这表示请求页面已成功),也可以对其进行修改以给出错误。

该片段经过编辑以适合您的功能,并从官方网站上获取,用于记录PHP,JavaScript,JQueryJS等语言。

http://www.w3schools.com/json/json_http.asp

编辑编号 2

发现您的json格式不正确,值和键必须用"'括起来。这是它的样子:

{"firstName":"John","lastName":"Smith"}

由此,您可以使用xmlData.firstNamexmlData["firstName"]两者执行相同的操作。

接下来, async参数已被弃用,并且是完全异步的,因此您必须将xml.open()更改为此:

xml.open('GET','index.json');

最后,对于onreadystatechange我对其进行了修改以适合您的脚本,该修改已在我的上一个文章中应用。

-----想看直播吗? -----

我已经上传并更正了它以适合您的功能,它可以正常工作,并且功能齐全,没有错误处理,这里是一个链接:

http://js.x10.bz/helpstack/35739016/main.html

这是源代码的链接:

http://js.x10.bz/helpstack/35739016/main.txt

最后,这是JSON文件的外观:

http://js.x10.bz/helpstack/35739016/index.json

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM