Разбор массива массивов JSON в jQuery

, если соединение является тестом FTPS:

FTPSClient ftpClient = новый FTPSClient (протокол, ложь);

protocol = TLS, SSL и false = isImplicit.

0
задан Curtis Upshall 13 July 2018 в 04:14
поделиться

2 ответа

Я не вижу необходимости делать $json_params в качестве массива. Он хранится вне цикла и выполняется только один раз. Просто удалите [] часть. Код будет выглядеть следующим образом.

$json_params = array(
    "students" => $student_array, /* The array of arrays */
    "success" => "n students were checked in, nice!" /* generic message */
    "failure" => "m students couldn't be accessed"
);

В вашем jQuery вы можете просто получить результат JSON без доступа к массиву ключей. [0] не требуется, поскольку [] в $json_params удаляется.

var serverData = $.parseJSON(data);
2
ответ дан david 17 August 2018 в 13:41
поделиться
  • 1
    Да, вы уверены, что не получаете какой-либо ошибки или предупреждения в своем выпуске PHP? Возможно, это то, что возится с JSON, ответ PHP должен быть действительным JSON с байта 0 до конца. – mxcoder 13 July 2018 в 04:21
  • 2
    да, никаких ошибок или предупреждений в php-выходе. Я подозреваю в доступе к массиву в этом js-коде. $.parseJSON(data) – david 13 July 2018 в 04:26
  • 3
    PHP не содержит ошибок; он делает точно так, как предполагалось. Я попробую это – Curtis Upshall 13 July 2018 в 04:37
  • 4
    PHP выглядит так: $json_params = array(); $json_params["students"] = $success_array; $json_params["success"] = $result_success; и jQuery выглядит так: var serverData = $.parseJSON(data);. Проблема все еще сохраняется – Curtis Upshall 13 July 2018 в 04:42
  • 5
    это та же ошибка? – david 13 July 2018 в 04:44

У вашего кода есть это:

var serverData = $.parseJSON(data)[0];

, но он терпит неудачу, потому что данные уже являются объектами (а не строкой json, которая нуждается в анализе). Попробуйте следующее:

var serverData = data[0];
1
ответ дан jdigital 17 August 2018 в 13:41
поделиться
  • 1
    Я попробую – Curtis Upshall 13 July 2018 в 04:44
  • 2
    console.log() говорит, что serverData.success есть undefined: / – Curtis Upshall 13 July 2018 в 04:47
  • 3
    Я тестировал эту (сторону браузера) с вашими данными json, и она работает. Возможно, вы неправильно использовали console.log? – jdigital 13 July 2018 в 04:49
  • 4
    вы смотрите на вывод консоли или смотрите на возвращаемое значение console.log? – jdigital 13 July 2018 в 04:51
  • 5
    Коррекция, console.log(data) - это то, что я использовал для получения строки JSON. console.log(serverData) показывает сам объект. Поэтому я полагаю, что это не проблема с JSON, а с jQuery – Curtis Upshall 13 July 2018 в 05:18
Другие вопросы по тегам:

Похожие вопросы: