jQuery $ .post и json_encode возвращают строку с кавычками - PullRequest
8 голосов
/ 24 ноября 2010

Я использую вызов jQuery $ .post и он возвращает строку с кавычками Кавычки добавляются строкой json_encode. Как я могу остановить это от добавления кавычек? Я что-то упустил в своем вызове $ .post?

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

Ответы [ 2 ]

13 голосов
/ 24 ноября 2010

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 голос
/ 24 ноября 2010

Что именно вы пытаетесь сделать с данными, которые вы получаете?Если вы просто пытаетесь получить конкретный ключ сообщения JSON, то есть «имя» в «{"name":"sam"}"», то (при условии, что у вас есть объект JSON, а не массив JSON), вы сможете использовать data.nameнезависимо от двойных кавычек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...