2012-01-30 58 views
-1

我正在制作一个返回JSON的Ajax。我可以在Firebug中看到返回的JSON并使用JSLint对其进行验证,但是我无法提取内容。继承人我所看到的:
javascript未定义值

Data: {"shipments":[{"companyName":"GLOBAL SOL INC.", so on...........}]}

load: function(data){ 
    console.log("responseText " + data.responseText); 

**Above results in: responseText undefined** 

    var myVar = data.shipments; 

    console.log("myVar " + myVar); 

以上myVar的[Object对象]

+2

什么叫'load',你有什么期待'data'是,什么是'data.shipments',*什么是你的问题*? – Hamish 2012-01-30 19:36:12

+0

您好Hamish,加载是为Ajax获取请求,在application/json中返回的数据类型,我也发布了数据片段。 – user1052591 2012-01-30 19:37:01

+0

这是使用jQuery吗? – Jivings 2012-01-30 19:37:53

回答

1

在你的榜样结果,myVar的是指包含对象的数组。要获取公司名称值,请使用data.shipments[0].companyNamemyVar[0].companyName

0

它看起来像响应工作正常。

尝试console.log(data)console.log(myVar)。 如果您在没有字符串的情况下调用控制台,那么它将显示对象的内容(至少在Chrome中)。

然后,您将能够告诉您需要请求的对象元素。这可能是JSON格式问题,但很难从您的问题中得知。

0

该响应是否包含"responseText"属性?

{"shipments": [...], "responseText": ..., ...} 

如果没有,那么它是有道理的data.responseTextundefined,因为它并没有定义。

如果您要从XMLHttpRequest对象中寻找responseText对象,它可能会与load函数有所不同。哪个参数取决于调用函数的脚本(特定库或家庭酿造?)。

至于"[Object object]",这是Object的默认toString结果。如果您想再次JSON表示,使用JSON.stringify(...)

console.log("myVar " + JSON.stringify(myVar)); 

,或者最浏览器控制台提供浏览对象的能力。要使用此功能,只是将它作为单独的参数:

console.log("myVar", myVar);