2011-11-14 33 views
1

我希望其他人能夠創建我的代碼可以理解的JSON文件。我如何最好地記錄所需/允許的結構是什麼?記錄JSON文件結構的最佳實踐?

例子:

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

我怎麼會說出這樣的東西「的第一層次,它是那麼‘條款’要求在那裏和1之間可能有在CRM系統中的客戶ID。和3個元素,你不能調用第一級標籤「錯誤」,但所有其他未知標籤都被忽略等等。「

在XML中,我可以使用已經捕獲了這些信息的DTD,並且我可以添加一些額外的註釋。

但是JSON的最佳做法是什麼?現在我正在玩一個表結構,在左列中,根據我的結構,我有一個有效的JSON文件,它被切成塊,每個塊都是表中的一行。在正確的專欄中,我一次寫出散文,一大塊/一排。我不太滿意。有更好的想法嗎?

回答

1

JSON只是您的數據結構的序列化表示;因此,您應該記錄數據結構以代替序列化的輸出。

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

此外,JSON沒有任何數據規範(標記)符號,如XML;而XML也可用於序列化數據,它可讓您指定數據的結構(使用XSD)。 JSON並不打算做到這一點,並沒有提供這樣的機制。

+0

有趣的想法記錄的數據結構。 –

+0

其他技術在這裏,只要注意,他們都沒有接近標準化的任何地方:https://guidewiredevelopment.wordpress.com/2011/09/06/why-there-have-been-no-posts-lately/ – ken

+0

嗯,我認爲在黃金時段準備就緒之前可能會做一些認真的工作。但這是一個有趣的方向。感謝指針。 –

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"] 
}