Каков правильный тип содержимого JSON? - PullRequest
9715 голосов
/ 25 января 2009

Я какое-то время возился с JSON , просто выкладывал его в виде текста, и это никому не повредило (насколько я знаю), но я бы хотел начать делать что-то должным образом.

Я видел , поэтому многие подразумевали "стандарты" для типа контента JSON:

application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json

Но какой из них правильный или лучший? Я понял, что между ними существуют проблемы с безопасностью и поддержкой браузера.

Я знаю, что есть похожий вопрос, Какой тип MIME, если JSON возвращается через REST API? , но я бы хотел получить более точный ответ.

Ответы [ 34 ]

6 голосов
/ 04 сентября 2016

Чтобы указать интересный результат JSON, вы добавляете «application / json» в заголовок вашего запроса, как показано ниже:

"Accept: application / json" - это требуемый формат ответа.

«Content-Type: application / json» указывает формат содержимого вашего запроса, но иногда вы указываете и application/json, и application/xml, но качество их может быть другим. Какой сервер отправит обратно разные форматы ответов, посмотрите на пример:

Accept:application/json;q=0.4,application/xml;q=8

Это вернет XML, потому что XML имеет более высокое качество.

5 голосов
/ 04 января 2017

В дополнение к остальным ответам тип MIME для связанных данных JSON (JSON-LD) в соответствии с W3C :

application/ld+json

Имя типа: заявка

Название подтипа: ld + json

Кроме того, из того же источника:

Расширение файла (ов) :

.jsonld

5 голосов
/ 18 октября 2016

Правильный текущий стандарт - application/json. Хотя кодировкой по умолчанию является UTF-8, стоит упомянуть, что это также может быть UTF-16 или utf-32. Когда JSON записано в UTF-16 или UTF-32, необходимо использовать двоичное кодирование передачи содержимого.

Более подробную информацию о json можно получить здесь: https://tools.ietf.org/html/rfc4627

больше информации о двоичной кодировке передачи здесь: https://www.w3.org/Protocols/rfc1341/5_Content-Transfer-Encoding.html

2 голосов
/ 08 апреля 2019

Всегда старайтесь запомнить эти три типа контента, даже если существует много типов контента как вам, возможно, придется использовать их чаще.

  • Тип содержимого: application / json
  • Тип содержимого: application / xml
  • Тип содержимого: текст / html
...