我正在使用jQuery的$ .post调用,它返回一个带引号的字符串。引号由json_encode行添加。如何阻止添加引号?我在$ .post电话中遗漏了什么?
$.post("getSale.php", function(data) {
console.log('data = '+data); // is showing the data with double quotes
}, 'json');
答案 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}}无论双引号如何。