JSON数据描述语言

时间:2013-02-04 05:08:40

标签: json field-description

假设我的应用程序想要从中访问数据有多个REST API。每个API都支持JSON响应,但用于描述数据的字段不同。因此,一个API可以使用 time ,而另一个API可以使用 timestamp 作为时间戳数据的关键字。类似地, location 等其他字段可以用不同的方式表示。

我摄取这种异构数据的一种方法是为每个API编写一个包装器。但是,我想要一种更通用的方法。

我的应用程序希望从每个API的JSON响应中检索(说)以下字段:

  • 时间戳
  • 纬度
  • 经度

我正在考虑编写单个JSON解析器,但指定一个配置文件,它告诉解析器哪个字段代表什么。所以它看起来像:

对于API1(比如说)

  • timestamp ='time'
  • latitude ='location'[0]
  • 经度='位置'[1]

对于API2(比如说)

  • timestamp ='timestamp'
  • latitude ='lat'
  • 经度='lng'

我确信现有的方法可以让你指定这样的数据描述,但我找不到。有人能指出我正确的方向吗?

修改 如果有一种通用的方法不仅可以解析,还可以为这些REST API创建查询,也请告诉我。例如,某些API接受时间间隔作为查询参数。这些查询参数也不同于API到API。因此,请建议如何编写一个通用查询模块,该模块接受一个配置文件,告诉模块如何形成查询。

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找类似JSON Schema的内容。

从链接:

  

基于JSON的格式,用于定义JSON数据的结构。 JSON Schema提供了给定应用程序所需的JSON数据以及如何与之交互的合同。 JSON Schema旨在定义JSON数据的验证,文档,超链接导航和交互控制。

以下是该网站提供的示例:

{
    "title": "Example Schema",
    "type": "object",
    "properties": {
        "firstName": {
            "type": "string"
        },
        "lastName": {
            "type": "string"
        },
        "age": {
            "description": "Age in years",
            "type": "integer",
            "minimum": 0
        }
    },
    "required": ["firstName", "lastName"]
}