2013-05-10 103 views
0

我正在設計json方案。我在設計模式時遇到了一些問題。需要幫助:Json Schema Design

這是問題所在。我有一組組對象的數組。我想這個數組應該包含唯一的組對象。我想讓他們獨特的基於對象ID(前group.id)

的組陣不是唯一的,如果(groups[0].id == groups[1].id),我只希望基於組ID,使獨特的,下面是我的的Json結構。

"groups": { 
     "type": "array", 
     "items": {"$ref": "#/group"}, 
     "uniqueItems":true 
    }, 

"group": { 
     "type": "object", 
     "properties": { 
      "id": {"type": "integer"}, 
      "type": { 
       "type": "string", 
       "enum": [ 
        "a", 
        "b" 
       ] 
      }, 
      "command": { 
       "type": "string", 
       "enum": [ 
        "add", 
        "modify" 
       ] 
      } 
     } 
    }, 
+1

請提供一些您嘗試過的示例代碼,以便其他人可以幫助您 – 2013-05-10 05:00:21

回答

1

那麼,這裏沒有魔彈。提醒Json-Schema是爲了定義Json數據的結構(不是值)。

一個選項不會考慮你的組節點是一個「數組」而是一個「對象」,並使用additionalProperties來表示所有附加屬性應該包含「type」和「command」屬性。

然後,您將使用組中每個屬性的名稱作爲id,所以它將是唯一的。

這種方法的問題是,您不要將此ID限制爲數字(在您的上下文中可能不可接受)。即使你可以使用patternProperties將「類型,命令」模式與數字「id's」相匹配。