Php JSON对象属性未定义

Php JSON对象属性未定义,php,javascript,ajax,json,undefined,Php,Javascript,Ajax,Json,Undefined,我从一个AJAX调用中得到一个JSON对象,并将结果记录如下: console.log(response); 这是控制台中记录的响应: {"filename":"new.jpg","orientation":"vertical"} var obj = {"filename":"new.jpg","orientation":"vertical"} 然而,当我 console.log(response.orientation); 我得到一个未定义的响应 我读过的大多数答案都表明返回的是数组而

我从一个AJAX调用中得到一个JSON对象,并将结果记录如下:

console.log(response);
这是控制台中记录的响应:

{"filename":"new.jpg","orientation":"vertical"}
var obj = {"filename":"new.jpg","orientation":"vertical"}
然而,当我

console.log(response.orientation);
我得到一个未定义的响应

我读过的大多数答案都表明返回的是数组而不是对象,并且响应[0]。定向应该可以工作,但这里的情况并非如此。在控制台中将同一数组分配给另一个变量时:

{"filename":"new.jpg","orientation":"vertical"}
var obj = {"filename":"new.jpg","orientation":"vertical"}
然后obj.orientation返回正确的值

我正在用PHP创建JSON对象:

$response=array('filename' => $newfilename, 'orientation' => $orientation);
$response=json_encode($response);
echo $response;

属性显示为未定义的原因很明显吗?

您需要解析字符串以获得正确的JSON对象。 JSON.parse(响应); 将为您提供一个JSON对象,您可以从中读取属性

header("Content-type: application/jason");

在PHP中,在JavaScript中的AJAX调用中指定
数据类型:“json”
,或者调用
json.parse

,您可以在JSFIDLE中尝试以下示例吗

这不是使用JSON.parse()的更好方法;或$.parseJSON();(jquery版本)

但如果这是您的问题,json将作为字符串返回,这将修复它,您可以修改代码


我认为ajax/php部分应该是 阿贾克斯

PHP


确保至少使用5.2 php版本

如果您的响应是字符串,则必须先通过
JSON.parse
才能访问属性。另外,您可以发布您的代码,说明发送ajax请求和成功函数json.parse(或jQuery中的$.parseJSON)是如何做到这一点的。我不知道为什么我读过的几篇教程中没有。。。非常感谢。这似乎是一个普遍的问题,我们几乎每天都看到有人问本质上相同的问题。