【发布时间】:2014-05-05 11:18:24
【问题描述】:
我有一点两难选择做什么(我应该做什么)。我的应用程序中有几个地方使用 AJAX 传输 JSON 数据。因此,例如从注册表单中接收数据:
try {
var data = JSON.parse(json);
}
catch(e) {
// ...
}
var fields = {
firstName: data.firstName || "",
lastName: data.lastName || "",
...
};
然后我需要对这些字段做点什么。比方说:
if (fields.firstName) {
// OK save it to the DB
}
if(fields.lastName.xxx()) { // xxx() is a method that belongs to JS String Object
// Do something...
}
问题是如果fields.firstName 或fields.lastName 是{} / [] 呢?如果有人发送了带有错误数据类型的修改后的 JSON,则可能会发生这种情况,由于缺少方法 xxx,整个应用程序将崩溃。
我是否必须检查每个字段的类型是否真的是一个字符串、一个数字、一个数组......或者是否有其他更好的方法来做到这一点?
【问题讨论】:
-
使用 JSON Schema 验证器,至于崩溃容错使用 promises 或 try catch spaghetti
标签: javascript json node.js validation