JSON 内容类型有许多“标准 ” :
application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json
我用哪一种,在哪里?我假设安全和浏览器支持问题是一个因素。
相关:如果JSON被REST API送回,什么MIME类型?
JSON 内容类型有许多“标准 ” :
application/json
application/x-javascript
text/javascript
text/x-javascript
text/x-json
我用哪一种,在哪里?我假设安全和浏览器支持问题是一个因素。
相关:如果JSON被REST API送回,什么MIME类型?
当前回答
如果您在客户端环境中, 调查交叉浏览器支持是强制的, 对于一个支持良好的网络应用程序来说 。
右侧的 HTTP 内容- ype 将是应用程序/ json, 其他人也已经强调过, 但有些客户对它处理不当, 这就是为什么jQuery 推荐默认文本/ html 。
其他回答
JSON是一种特定域名语言(DSL)和独立于 JavaScript 的数据格式, 并因此拥有自己的 MIME 类型、 应用程序/ json 。 当然, 尊重 MIME 类型是客户驱动的, 所以文本/ plain 也可以用于字节的传输, 但随后您会不必要地将解释推到供应商应用程序域 - 应用程序/ json 。 您会通过文本/ plain 传输 XML吗 ?
但坦率地说,你选择MIME类型是建议客户如何解释数据-文本/平方或文本/HTML(当它不是 HTML ) 。 它和用打印语言制作您类型对象一样,没有信息规范。
我知道没有浏览器运行时间会拿JSON文件, 并且自动在运行时作为 JavaScript 无障碍对象, 不受干扰地提供, 但如果你和一个残废的客户合作, 那是一个完全不同的问题。 但是,这不是整个故事- Restful JSON 服务通常没有 JSON 运行时间, 但是它不会阻止他们使用 JSON 作为可行的数据交换格式。 如果客户是残废的... 那么我会考虑也许通过 Ajax Tylating 服务输入 HTML 。
申请/JSON!
在 JSP 中,您可以在页面指令中使用此指令 :
<%@ page language="java" contentType="application/json; charset=UTF-8"
pageEncoding="UTF-8"%>
JSON的正确MIME媒体类型是申请/json, JSP将用来向客户发送回复。
当前的适当标准是应用程序/json。 虽然默认编码是 UTF-8, 值得一提的是, 它也可能是 UTF-16 或 UTF-32. 当 JSON 写入 UTF-16 或 UTF-32 时, 必须使用二进制内容传输编码 。
RFC 4627: JavaScript 对象标记的应用/json 介质类型(JSON)
5. 内容-传输-编码页眉字段(RRC 1341)是二进制传输编码的更多资料。
只有在使用应用/json作为MIME类型时(截至2011年11月,有最新版本的Chrome、Firefox和Firebug),我才具备以下条件:
当 JSON 从服务器上装入时, Chrome 不再发出警告 。 Firebug 会在回复中添加一个标签, 显示您格式化的 JSON 数据。 如果 MIME 类型不同, 它会显示为“ 响应内容 ” 。
作为一些研究,
最常见的MIME类型是
申请/日文
让我们举个例子来区分杰森和爪哇史克里普特
申请/日文
当不知道该数据将如何使用时,即使用该数据。当信息仅以 JSON 格式从服务器中提取时,它可以通过链接或任何文件(如果是的话)来使用。
比如说...
<?php
header('Content-type:application/json');
$directory = [
['Id' => 1, 'Name' => 'this'],
['Id' => 2, 'Name' => 'is'],
['Id' => 3, 'Name' => 'Stack Overflow'],
];
// Showing the JSON data
echo json_encode($directory);
?>
产出是,
[{"Id":1, "Name":"this"}, {"Id":2, "Name":"is"}, {"Id":3, "Name":"Stack Overflow"}]
申请/标注
在预先界定数据使用时使用,在客户端 Ajax 应用程序调用时使用,在JSON-P型或JSONP型数据时使用。
例如,例如
<?php
header('Content-type:application/javascript');
$dir = [
['Id' => 1, 'Name' => 'this' ],
['Id' => 2, 'Name' => 'is'],
['Id' => 3, 'Name' => 'Stack Overflow'],
];
echo "Function_call(" . json_encode($dir) . ");";
?>
产出是,
Function_call([{"Id":1, "Name":"this"}, {"Id":2, "Name":"is"}, {"Id":3, "Name":"Stack Overflow"}])
对于其他MIME类型,请参看MIME类型的完整细节(IANA媒体类型)。