记录JSON文件结构的最佳实践?

记录JSON文件结构的最佳实践?,json,documentation,Json,Documentation,我希望其他人能够创建我的代码可以理解的JSON文件。我如何最好地记录所需/允许的结构 例如: { "customer1" : { "open-orders" : [ 123, 456 ], "terms" : [ "net 30" ] }, ... } { "title": "Example Schema", "type":

我希望其他人能够创建我的代码可以理解的JSON文件。我如何最好地记录所需/允许的结构

例如:

{
    "customer1" : {
        "open-orders" : [
            123,
            456
        ],
        "terms" : [
            "net 30"
        ]
    }, ...
}
{
    "title": "Example Schema",  
    "type": "object",
    "properties": {
        "firstName": {
            "type": "string"
         },
         "lastName": {
             "type": "string"
         },
         "age": {
             "description": "Age in years",
             "type": "integer",
             "minimum": 0
         }
    },
    "required": ["firstName", "lastName"]
}
我如何陈述“在第一级,它是CRM系统中找到的客户ID。然后需要“术语”,数组中可能有1到3个项目。您不能调用第一级标记“错误”,但会忽略所有其他未知标记等。”

在XML中,我可以使用已经捕获了其中一些信息的DTD,并且可以添加一些附加注释


但是JSON的最佳实践是什么?现在我正在玩一个表结构,在左边的列中,我有一个根据我的结构的有效JSON文件,它被切分为块,每个块都是表中的一行。在右边的栏中,我接着写散文,一次写一行。我对它不太满意。有更好的想法吗?

JSON只是数据结构的序列化表示;因此,您应该记录数据结构,而不是序列化输出

/**
 * @var object Customer
 */
var customer = {
    /**
     * @var Number[][]
     */
    "open-orders": [],
    /**
     * @var String[][]
     */
    "terms": []
};

而且,JSON没有任何数据规范(标记)表示法,比如XML;尽管XML也可以用于序列化数据,但它允许您指定数据的结构(使用XSD)。JSON并不打算这样做,也没有为此提供任何机制。

您可以为JSON结构编写模式(就像XML文件的dtd一样)

这里是一个很好的起点:

例如:

{
    "customer1" : {
        "open-orders" : [
            123,
            456
        ],
        "terms" : [
            "net 30"
        ]
    }, ...
}
{
    "title": "Example Schema",  
    "type": "object",
    "properties": {
        "firstName": {
            "type": "string"
         },
         "lastName": {
             "type": "string"
         },
         "age": {
             "description": "Age in years",
             "type": "integer",
             "minimum": 0
         }
    },
    "required": ["firstName", "lastName"]
}

记录数据结构是一个有趣的想法。这里的其他技术,只需注意它们都不接近标准化:嗯,我认为在黄金时间到来之前可能需要做一些严肃的工作。但这是一个有趣的方向。感谢您的指针。在一些语言(如python)中,数据结构很自然地是在读取JSON时从JSON中推断出来的。因此,建议的答案并不总是适用。我更喜欢文档化的JSON模板。但这只是一个观点。。。