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