Множественные данные JSON

#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 Конечно, я должен упомянуть в ответе, но добавил это в свой код. Спасибо, что упомянули об этом.