json - 如何在规范中描述 JSON 数据?

标签 json

在规范中描述 JSON 数据的最佳方式是什么?

过去我使用过带有“冗长”描述的示例,但感觉不准确。

似乎有一个新生的JSON schema标准,但它看起来不像是一个非常活跃的项目。还有其他方法吗?


(更新)在考虑了几天之后,我喜欢 bmargulies 关于使用转换约定的建议。由于本例中的 JSON 文档是我们从 .NET Web 服务中出来的,因此我将使用 C# 类语法简单地记录模式。这可能并不完全严格,但参与的每个人都会理解它,并结合示例将尽快传达信息。

最佳答案

我会推荐我的 js-schema JavaScript 库。其背后的主要动机与您在问题中描述的相同。描述 JSON 模式(或规范,如果需要)是一种简单易懂的符号。

JSON Schema 中描述的示例模式:

{
  "type":"object",
  "properties":{
    "id":{
      "type":"number",
      "required":true
    },
    "name":{
      "type":"string",
      "required":true
    },
    "price":{
      "type": "number",
      "minimum":0,
      "required":true
    },
    "tags":{
      "type":"array",
      "items":{
        "type":"string"
      }
    }
  }
}

和 js-schema 相同的模式描述:

{
  "id"    : Number,
  "name"  : String,
  "price" : Number.min(0),
  "?tags" : Array.of(String)
}

该库能够根据模式验证对象,生成符合给定模式的随机对象,以及对 JSON 模式进行序列化/反序列化。

关于json - 如何在规范中描述 JSON 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3213398/

相关文章:

json - CouchDB 中奇怪的 JSON

javascript - 未捕获的语法错误 : Unexpected end of input While doing JSON. 解析

iOS 使用 JSON 加载外部数据——Segue 崩溃并出现错误 : [__NSCFNumber length]: unrecognized selector sent to instance

c - 用 C 将 JSON 字符串放入数据库

android - 比较 - XML 与 JiBX 或 JSON 与 Jackson?

json - 哪种数据源更适合 Google map 、KML 或 JSON?

javascript - 使用 JavaScript 解析 Datasnap 结果

javascript - innerHTML 和静默解码的引号

php - 如何将转换后的数组插入mysql? (PHP)

java - volley json 数组只获取最后一个元素