1
我正在使用AJV庫來驗證我的JSON模式。我希望能夠驗證Startdate
是一個字符串。在不是字符串的情況下,應將其轉換爲N/A
。目前,它僅將undefined
轉換爲N/A
。AJV自定義關鍵字驗證
然而,在這些情況下,它也不會達到預期效果:
null
- > 「空」- 0 - > 「0」
- 真實 - > 「真」
如果我想將以上所有轉換爲N/A
字符串,我的customKeyword函數將會是什麼樣子?
JSON響應:
jsonResponse: {
"Issue": {
"StartDate": "December 17, 1995 03:24:00"
}
}
模式:
var ajv = new Ajv({ useDefaults: true, coerceTypes: 'undefined'});
const schema = {
"type": "object",
"properties": {
"Issue": {
"type": "object",
"properties": {
"StartDate": {"type": "string" "default": "N/A",
"stringTypeChecker"}
}
}
}
}
addKeyword功能:
ajv.addKeyword('stringTypeChecker', {
modifying: true,
validate: function(){
let foo = []
console.log(foo)
}
});
var valid = ajv.validate(schema, jsonResponse);
會截止日期的模式值,是'stringTypeChecker'參考?換句話說,我將如何改變模式,使用'stringTypeChecker'關鍵字? – eagercoder
「stringTypeChecker」應該是具有任何值的模式屬性之一(例如'true') – esp
'stringTypeChecker'中的validate'方法有四個參數,但是在條件邏輯中不使用'dataPath'。這是我怎樣調用'stringTypeChecker' - > '變種的validate = ajv.compile(JSON_SCHEMA);' '變種有效= ajv.validate(responseJson,responseJson [ 「問題」],'' 」 StartDate「);' 在引擎蓋下我觀察到validate方法需要所有四個參數。有沒有辦法改變validate函數中期望的參數數量,因爲'validate'不使用'dataPath'? 謝謝您的準時回覆。 – eagercoder