jQuery $ .post和json_encode返回一个带引号的字符串

时间:2010-11-24 03:38:40

标签: jquery ajax json

我正在使用jQuery的$ .post调用,它返回一个带引号的字符串。引号由json_encode行添加。如何阻止添加引号?我在$ .post电话中遗漏了什么?

$.post("getSale.php", function(data) {
    console.log('data = '+data); // is showing the data with double quotes
}, 'json');

2 个答案:

答案 0 :(得分:13)

json_encode()返回一个字符串。来自json_encode()文档:

Returns a string containing the JSON representation of value.

您需要在JSON.parse()上调用data,它将解析JSON字符串并将其转换为对象:

$.post("getSale.php", function(data) {
    data = JSON.parse(data);
    console.log('data = '+data); // is showing the data with double quotes
}, 'json');

但是,由于您在data =调用中将字符串data连接到console.log(),因此将记录的内容为data.toString(),它将返回您的字符串表示形式对象,将是[object Object]。因此,您需要在单独的data电话中记录console.log()。像这样:

$.post("getSale.php", function(data) {
    data = JSON.parse(data);
    console.log('data = '); // is showing the data with double quotes
    console.log(data);
}, 'json');

答案 1 :(得分:1)

您究竟在尝试使用您收到的数据?如果您只是想获取JSON消息的特定键,即“{"name":"sam"}"中的”名称“(假设您有一个JSON对象而不是JSON数组),那么您将能够使用{ {1}}无论双引号如何。