严格JSON对象的内容类型

问题描述:

对于标准JSON服务,内容类型预计为application/json(请参阅What is the correct JSON content type?)。严格JSON对象的内容类型

由于null123"foo"是有效的JSON文件,任何生产application/json服务alowed返回那些为体之一。

如果我想以确保服务将返回一个有效的JSON对象一个有效的JSON 阵列?有效对象

实例无效对象

123 

{} 

{ 
    "foo": "bar" 
} 

实例

null 

[ 
    { "foo": "bar" } 
] 

(这个会是一个有效的数组)

+0

我会等待专家回答,但我猜这是没有的。由于我们正在处理HTTP,它只是文本,所以即使客户端将“Accept”头作为“application/json”发送(即,这将是一种不好的做法),我也可以以XML格式发送响应。我想确保这是一个有效的JSON的唯一方法是验证客户端的响应。 –

+0

这也是我的第一个猜测。但是我在所有的RFC中都有点迷路,所以如果有意外的话...... –

您可以使用JSON Schema来定义所期望的响应,有效的JSON文件和应用您希望在见到严传入的回应。您可以根据定义的JSON模式验证传入响应。有许多JSON Schema验证器可用于开源。如果你使用node.js,jsonschema是一个很好的模块。您可以在JSON模式定义非常严格,如使用additionalProperties: false等。