Как получить значения закодированного json, используя php в ответе ajax? - PullRequest
0 голосов
/ 28 сентября 2018
echo json_encode(array('out' => $out, 'total' => $total ));

Привет, я получаю данные JSON, как показано ниже, используя приведенный выше код PHP.

var result = {"out":"[{\"tax\":\"SGST@9%\",\"percent\":7.75},{\"tax\":\"CGST@9%\",\"percent\":7.75},{\"tax\":\"SGST@2.5%\",\"percent\":3.11},{\"tax\":\"CGST@2.5%\",\"percent\":3.11}]","total":210}

Мне нужно получить элементы в отдельной переменной, как показано ниже

var out = [{"tax":"SGST@9%","percent":7.75},{"tax":"CGST@9%","percent":7.75},{"tax":"SGST@2.5%","percent":3.11},{"tax":"CGST@2.5%","percent":3.11}];
var total = 210;

Я пока пробовал с приведенными ниже кодами.

result = JSON.stringify(result);
result = result.replace(/\\/g, "");
var obj3 = JSON.parse(result);
alert(obj3[0]);

Но я не получаю вывод.

Ответы [ 3 ]

0 голосов
/ 28 сентября 2018

В настройках Ajax добавьте JSON

dataType: 'JSON', 

Затем в функции успеха

success: function(result) {
console.log(result.tax);//gives you the value for the tax key provided it's defined in the php response array
},
0 голосов
/ 28 сентября 2018

Попробуйте это

 result = result.replaceAll("\\\\", "");

вместо

result = result.replace(/\\/g, "");
0 голосов
/ 28 сентября 2018

Основная проблема заключается в том, что $out - это JSON для начала (так что в итоге он имеет двойную кодировку), но не имеет смысла быть JSON в контексте.

Вы могли быпросто преобразуйте его в структуру данных PHP перед преобразованием более широкого массива в JSON:

$out = json_decode($out, true);
$json = json_encode(array('out' => $out, 'total' => $total ));
echo "var result = $json;";

Если вы не хотите прикасаться к PHP, вы можете обойти это в JavaScript:

$out = json_decode($out, true);
$json = json_encode(array('out' => $out, 'total' => $total ));
echo "var result = $json;";
?>
var out_json = result.out;
var out = JSON.parse(out_json);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...