在javascript中访问对象属性

时间:2016-03-02 05:14:19

标签: javascript

我编写了这段代码,当我想访问对象属性时,它一直在说未定义。任何人都可以指出我的错误。

error msg pic

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}

1 个答案:

答案 0 :(得分:0)

我记得因为试图使用它而读到这个,你错过了一个简单的函数,称为请求的每个状态更改

编辑,更正功能

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

    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