Я хочу проверить на стороне клиента (jQuery), являются ли возвращаемые данные из функции PHP объектом Json или String для назначения другой функции.
Как узнать, являются ли данные возврата Json или String в jQuery и PHP?
Ответ 1
jQuery parseJson генерирует исключение, если json не в правильном формате. Вы можете обернуть свой звонок в блок catch try. (Но помните, что наличие исключений в вашем нормальном потоке кода - это плохая практика)
data = '{}';
try {
json = $.parseJSON(data);
} catch (e) {
// not json
}
Вы также можете использовать собственный метод JSON.parse()
, который генерирует исключение SyntaxError
Если вы ожидаете, что плохой JSON будет частью вашего обычного рабочего процесса программы, вы можете сначала проверить его с помощью регулярного выражения, Ответ на микрофон довольно прочный Но в вашем случае PHP должен всегда генерировать действительный json при нормальных условиях. Если его недействительный, вероятно, есть ошибка в вашем программном обеспечении.
Ответ 2
try {
jQuery.parseJSON( json )
//must be valid JSON
} catch(e) {
//must not be valid JSON
}
Ответ 3
Возвращаемые данные всегда представляют собой строку (то есть последовательность символов). Но если вы скажете jQuery, что вы ожидаете ответ json, он попытается преобразовать строку в объект javascript для вас.
Нет выделенного сетевого протокола для передачи объектов javascript через Интернет.
Ответ 4
В javascript вы можете использовать typeof