Как узнать, являются ли данные возврата Json или String в jQuery и PHP?

Я хочу проверить на стороне клиента (jQuery), являются ли возвращаемые данные из функции PHP объектом Json или String для назначения другой функции.

Ответы

Ответ 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