2016-03-25 7 views
0

Ich habe ein Schema schreiben, um den Antworttext zu validieren. Und legen Sie alle Elemente als "erforderlich" fest. Aber wenn der Körper leere Array zurückgeben, es bis PASS, was vermutlich FAIL sein sollte. Schema wie folgt aus:JSON-Schema funktioniert nicht für leere Antwort Körper

var schema = { 
 
    "$schema": "http://json-schema.org/draft-04/schema#", 
 
    "type": "array", 
 
    "items": { 
 
    "$ref": "#/definitions/MyObject" 
 
    }, 
 
    "definitions": { 
 
    "MyObject": { 
 
     "type": ["object"], 
 
     "properties": { 
 
     "transactionId": "integer", 
 
     "transactionType": "string", 
 
     "bpCode": "string", 
 
     "bpId": "string", 
 
     "postingDate ": "string", 
 
     "dueDate": "string", 
 
     "totalAmount": "number", 
 
     "balanceDue": "number", 
 
     "reconcileAmount": "number", 
 
     "debitCredit": "string", 
 
     "remarks": "string", 
 
     }, 
 
     "required": ["transactionId", "transactionType", "bpCode", "bpId", "postingDate", "dueDate", "totalAmount", "balanceDue", "reconcileAmount", "debitCredit", "remarks"], 
 
     "additionalProperties": false 
 
    } 
 
    } 
 
}; 
 

 
tests["Valid respong body schema"] = tv4.validate(data.body, schema);

Die Antwort wie folgt aus:

{ 
 
    "errorCode": null, 
 
    "errorMessage": null, 
 
    "body": [] 
 
}

Antwort

0

Sie sollten das leere Array ausschließen mit:

"type": "array", 
"minItems": 1 
"items": { 
    "$ref": "#/definitions/MyObject" 
}