jquery
  • ajax
  • json
  • 2010-11-24 66 views 7 likes 
    7

    我正在使用jQuery的$ .post调用,它返回一个带有引号的字符串。引号是由json_encode行添加的。如何阻止添加引号?我是否在$ .post调用中缺少某些内容?

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

    回答

    12

    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'); 
    

    但是,由于您要在console.log()调用中连接字符串data =data,因此将记录的内容为data.toString(),它将返回对象的字符串表示形式,它将是[object Object]。所以,你打算在一个单独的console.log()呼叫中登录data。这样的事情:

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

    你试图用你接收的数据做什么?如果您只是试图获取JSON消息的特定键,即“{"name":"sam"}"”中的“名称”(假设您有JSON对象而不是JSON数组),则无论使用双精度型还是双精度型,都可以使用data.name 。报价

    +0

    我试图插入一个HTML标记中的数据,一旦我把它拿回来。 – Catfish 2010-11-24 03:44:43

    +0

    我正在使用json_encode(array())来返回我的php文件中的值,是不是? – Catfish 2010-11-24 03:45:18

    相关问题