JSON object properties are undefined

一个人想着一个人 提交于 2019-12-24 03:55:15

问题


I'm getting a JSON object back from an AJAX call and logging the result like this:

console.log(response);

And this is the response logged in the console:

{"filename":"new.jpg","orientation":"vertical"}

However, when I

console.log(response.orientation);

I get a response that it is undefined.

Most of the answers I've read indicate that an array was returned instead of an object and that response[0].orientation should work, but that is not the case here. When I assign the same array to another variable in the console:

var obj = {"filename":"new.jpg","orientation":"vertical"}

Then obj.orientation returns the correct value.

I'm creating the JSON object in PHP:

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

Is it apparent why the properties are showing undefined?


回答1:


Either put:

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

in the PHP, specify dataType: "json" in the AJAX call in the JavaScript, or call JSON.parse.




回答2:


You will need to parse your string to get a proper JSON object. JSON.parse(response); will provide you with a JSON object from which you can read the properties




回答3:


Can you try the following example in jsfiddle.

This is not the better way you can use JSON.parse(); or $.parseJSON(); (jquery version)

But if this is your problem, json being returned as a string this fix it and you can alter your code

http://jsfiddle.net/dadviegas/gf8Yq/




回答4:


I think the ajax / php part should look like Ajax

$.ajax({
        type: "POST",   
        url: "link.php",
        dataType: "json",
        success: function(result){
             alert(result.orientation); 
        }
    });

PHP

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

Make sure that use at least 5.2 php version



来源:https://stackoverflow.com/questions/12215736/json-object-properties-are-undefined

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!