JSON отправляется по проводам с сервера в виде строки. Вот что такое JSON - строковый формат.
Независимо от того, приходит ли он к вашему коду в виде строки или как уже разобранный объект Javascript полностью зависит от кода, который вы используете, чтобы сделать HTTP-запрос и, возможно, какие заголовки на сервере установлены и какое автоматическое обнаружение кода выполняет Вызов Ajax.
Если заголовок ответа задает тип json, тогда код, создающий запрос, автоматически проанализирует его для вас в Javscript. Другой код оставит это для вызывающего абонента. Если сервер не устанавливает правильные заголовки, тогда какой-то код будет автоматически определять его как JSON и анализировать, а другой код не будет.
Итак ... нижняя строка. Это полностью зависит от того, что сервер делает в своем ответе и какой код используется для выполнения запроса. Вы можете легко просто сделать console.log(body)
и посмотреть, есть ли у вас строка JSON или уже обработанный Javascript-объект.
Если вы действительно не были уверены, какое поведение вы бы получили, вы можете протестировать тип и действовать соответствующим образом (хотя данный сервер и код вызова должны быть последовательными, поэтому вам не придется изменять ваше поведение), как только вы проверите как он себя ведет.
if (typeof body === "string") {
body = JSON.parse(body);
}
Вы можете напрямую получить доступ к данным json. Разбор не требуется. –
Ну, с новым API Mailchimp, иногда это так, что и вызвало вопрос. Теперь они должны, по крайней мере, быть последовательными, но почему было бы нормально отправлять сырые объекты по проводам? Не навязывает и не анализирует, что сохраняет формат в безопасности? – Costa
Это всегда будет строка, если только вы не используете для отправки запроса, разбор синтаксического ответа для вас. –