我有一个验证 JSON 的问题,它作为序列化字符串在 GET 请求查询参数中传递。
我需要实现的是将此序列化字符串解析回 JSON 并使用 Joi 对其进行验证。
示例:Give 是 JSON
{
limit: {size:10, page:0},
filter: {filter_by: 'foo', filter_val: 'foo', from: '1/1/2016',to: '1/1/2016' }
}
而这个 JSON 被转换为查询字符串是:
limit%5Bsize%5D=10&limit%5Bpage%5D=0&filter%5Bfilter_by%5D=foo&filter%5Bfilter_val%5D=foo&filter%5Bfrom%5D=1%2F1%2F2016&filter%5Bto%5D=1%2F1%2F2016
我需要这样的东西来检查:
validate: {
query: {
limit: Joi.someMethodToGetJsonFromString.object().keys({
size: Joi.number(),
page: Joi.number()
}
filter: Joi.someMethodToGetJsonFromString,.object().keys({
filter_by: Joi.string().valid(['option1', 'option2']),
filter_val: Joi.string(),
from: Joi.date(),
to: Joi.date(),
}
}
在这种情况下,Joi 中是否有任何帮助,或者我需要为它编写自定义验证函数。