#php #jquery #json #ajax
#php #jquery #json #ajax
Вопрос:
Я проверил каждое решение для переполнения стека. При запросе ajax PHP возвращает данные JSON, но он содержит несколько данных JSON.
var json = '[{"key":"amazon"},{"key":"a a"},{"key":"a and w"},{"key":"a aa"},{"key":"a and e"},{"key":"a aa movie"},{"key":"a aa songs"},{"key":"a aa telugu movie"},{"key":"a aa full movie"},{"key":"a and f"}][{"key":"a beautiful mind"},{"key":"a boogie"},{"key":"a bigger splash"},{"key":"a bronx tale"},{"key":"a brief history of time"},{"key":"a bola"},{"key":"a bugs life"},{"key":"a bientot"},{"key":"a bathing ape"},{"key":"a beautiful mess"}]';
console.log(JSON.parse(json));
$.each(JSON.parse(json), function(idx, obj) {
console.log(obj.key);
});
в var JSON есть два набора, один [] и второй [], что вызывает проблемы при повторении. Если у него есть только один set [], то он работает нормально.
PHP-код:
foreach($str as $key => $keyword){
$finalData[$key]['key'] = $keyword;
}
print_r(json_encode($finalData));
Примечание: он может возвращать данные с более чем 100 [], но в приведенном выше примере я просто упомянул два.
Пожалуйста, помогите мне.
Комментарии:
1. ваша строка json просто не является допустимым json, поскольку это просто объединение json-массивов. откуда вы берете эту строку? этот конкретный код необходимо исправить.
2. Я добавил соответствующий PHP-код, пожалуйста, просмотрите его.
3. это не полный php-код, о котором идет речь. я бы поспорил, что это где-то в цикле — не могли бы вы показать и эту часть кода? также: почему вы используете print_r?
Ответ №1:
То, что вы пытаетесь создать, является недопустимым JSON.
Пожалуйста, замените два ваших [] другим [] и запятой между обоими []. Смотрите код ниже.
//Sample Code and data
var json = '[[{"key":"amazon"},{"key1":"amazon1"}],[{"key":"amazon"},{"key1":"amazon1"}]]';
console.log(JSON.parse(json));
Если требуется дополнительная помощь, я рад помочь.
Спасибо, удачного кодирования.
Комментарии:
1. просто перенос их не помогает, ему также придется добавить запятую между ними, которую не содержат его данные образца
2. $.each(JSON.parse(json), function(idx, obj) { console.log(obj.key); }); idx — это ключ, а obj — текущий элемент каждого массива. пожалуйста, распечатайте его как console.log (obj) для текущего объекта и console.log (key) для текущего ключа.
3. @FranzGleichmann Конечно, я должен упомянуть в ответе, но добавил это в свой код. Спасибо, что упомянули об этом.