Я полагаю, вы пытаетесь подключиться к REST API? Тогда вам не нужен другой язык программирования, вы можете просто использовать собственные функции JavaScript. Посмотрите на fetch
и asnyc/await
. Кроме того, есть хорошая библиотека под названием axios
, которую вы можете проверить, что делает некоторые из этих вещей более удобными.
Надеюсь, что это помогает.
Во-первых {[]}
, {[null]}
, и {null}
не будет работать, потому что они - все недопустимые объекты JSON (как проверено блоком проверки допустимости JSON).
Остающиеся объекты являются всеми допустимыми объектами JSON, таким образом, Ваш success
функция должна становиться вызванной.
Если Вы передаете немассив или подобный массиву объектный объект затем each
функция перечислит Ваш json
объект его именованными свойствами. В случае Ваших трех объектов, что у каждого есть a rows
свойство this
будет установлен на []
, null
, и {}
соответственно, ни один из которых не имеет a columnName
припишите, таким образом, неопределенная ошибка будет брошена.
Ваш {}
объект, с другой стороны, не имеет никаких свойств, так не должен вызывать ошибку потому что each
вызов циклично выполнится 0 раз. Что отображает следующая строка, если Вы добавляете его как первую строку в Вашем success
функция?
alert(typeof json + ' ' + (json == null));
Вы ищете это:
[]
пустой массив. Таким образом, если Вы планируете выполнить итерации по нему сразу же, затем в чем Вы нуждаетесь, массив.
Вы проверяли, возвращается ли JSON правильно во-первых перед каждым? Установите пустое значение как {} и проверьте, похоже ли оно на это прежде .each
Также это помогло бы знать, как Ваш JSON похож, когда существуют данные.
Вместо:
$(json).each(function () { ... });
Я думаю, что Вы хотите использовать:
$.each(json, function () { ... });
Эта функция не является тем же как $ () .each () - который используется для итерации, исключительно, по объекту jQuery. Эта функция может использоваться для итерации по чему-либо.
Возможно, ваша веб-служба возвращает значение null. Я обнаружил, что возврат null из вызова веб-службы возвращает ответ с кодом состояния 200, «Ok», но после этого jQuery выдает ошибку синтаксического анализа.
Если это так, то это не имеет никакого отношения к тому, что вы отправляете на сервер, и ко всему, что сервер отправляет обратно.
Если вы можете изменить веб-службу, вы можете попробовать вернуть пустой объект JSON или значение по умолчанию вместо Null. В качестве альтернативы вы можете проверить этот сценарий ошибки в своем обработчике ошибок, зная, что это означает, что ваш вызов вернул null.