2015-05-27 114 views
0

JSON模式我有以下JSON動態陣列

{ 
     "Dettype": "QTY", 
"Details": [ 
    { 
    "12568": { 
    "Id": 12568, 
    "qty":1, 
    "Freq":"2", 
    "Option": 0, 
    "promote":"yes" 
    }, 
    "22456": { 
    "Id": 22456, 
    "qty":2, 
    "Freq":"3", 
    "Option": 1, 
    "promote":"no" 
    } 
    } 
] 
} 

對於上述JSON我需要編寫一個JSON模式文件,這將valdiates該請求。

但問題是在陣列中每個項目的關鍵值動態變化。如果是一些恆定值,我可以寫,但都不怎麼辦動態模式

JSON模式我得到

{ 
"type": "object", 
"additionalProperties": true, 
"properties": { 
    "Dettype": { 
     "type": "string" 
    }, 
    "Details": { 
     "type": "array", 
     "items": { 
      "type": "object", 
      "additionalProperties": true, 
      "properties": { 
       "**DYNAMIC VALUE**": { 
        "type": "object", 
        "additionalProperties": true, 
        "properties": { 
         "Id": { 
          "type": "integer" 
         }, 
         "qty": { 
          "type": "integer" 
         }, 
         "Freq": { 
          "type": "string" 
         }, 
         "Option": { 
          "type": "integer" 
         }, 
         "promote": { 
          "type": "string" 
         } 
        } 
       } 
      } 
     } 
    } 
} 

}

有沒有人告訴需要做哪些改變架構

+0

爲什麼會出現嵌入式陣列內的單個對象?爲什麼它不是一個對象本身? – fge

回答

1

這是patternProperties的用途。

這裏看來你的對象成員鍵總是數字;因此,你可以這樣寫:

"type": "object", 
"patternProperties": { 
    "^\\d+$": { 
     "type": "object", 
     "etc": "etc" 
    } 
} 
0

如果你希望所有的屬性相匹配的一些模式也可以使用additionalProperties:

{ 
    "type": "object", 
    "additionalProperties": { 
    "type": "object", 
    "etc": "etc" 
    } 
}