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

时间:2011-11-14 17:45:32

标签: json documentation

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

示例:

{
    "customer1" : {
        "open-orders" : [
            123,
            456
        ],
        "terms" : [
            "net 30"
        ]
    }, ...
}

我如何说出“在第一级,这是在CRM系统中找到的客户ID。然后'条款'必须在那里,并且阵列中可能有1到3个项目。你不能永远称为第一级标签'错误',但忽略所有其他未知标签等。“

在XML中我可以使用已经捕获了一些这些信息的DTD,我可以添加一些额外的注释。

但JSON的最佳做法是什么?现在我正在玩一个表结构,在左栏中我根据我的结构有一个有效的JSON文件,它被切成块,每个块都是表中的一行。在右栏中,我然后写散文,一次一个块/行。我对它不太满意。还有更好的想法吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

这是一个很好的起点:http://json-schema.org

示例:

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