如果出于任何原因,不是有效的 JSON,如何返回 false?
var ajv = new Ajv();
var schema = {
"properties": {
"payload": { "type": "string" },
"topic": { "type": "string" }
},
additionalProperties: false
};
var validate = ajv.compile(schema);
// My json string on property payload
const payloadLeans = R.lensProp('payload');
const payloadView = R.view(payloadLeans);
// get payload and parse JSON
const utf8String = prop => { console.log(prop); return prop.toString('utf-8'); } ;
const getPayload = R.pipe(R.over(payloadLeans, utf8String), payloadView, JSON.parse);
// My SCHEMA validation
const isPayloadValid = R.pipe(getPayload, validate);
const myInvalObj = {
payload: 'hello": "World" }', // INVALID JSON
topic: 'robot/20:30:AA:13'
};
const isValid = R.both(validate, getPayload)(myInvalObj); // ERROR! SHOULD RETURN FALSE
console.log(isValid);
<script src="https://cdnjs.cloudflare.com/ajax/libs/ajv/5.0.1/ajv.bundle.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.23.0/ramda.min.js"></script>