【发布时间】:2018-11-16 02:55:03
【问题描述】:
我正在通过 http 请求接收包含对象的数组字符串。我用 eval() 解析它。
所以我显然期待解析后的数组 obj。除了if (Array.isArray(parsedObj)) ...
还有比 eval() 更好的方法吗?
这是字符串的一部分(注意它不是 JSON):
[
["2018-06-06", "2018-06-07", "2018-06-08", "2018-06-09", "2018-06-10", "2018-06-11", "2018-06-12", "2018-06-13", "2018-06-14", "2018-06-15", "2018-06-16"],
{
"2018-06-10": {
checkFirstOrLastOfMonth: 0,
day: "10",
dayOfWeek: "SONNTAG",
formatedDate: "10 Jun 2018",
monthNo: "06",
shortMonthName: "Jun",
weekOfYear: 24,
year: "2018"
},
"2018-06-11": {
checkFirstOrLastOfMonth: 0,
day: "11",
dayOfWeek: "MONTAG",
formatedDate: "11 Jun 2018",
monthNo: "06",
shortMonthName: "Jun",
weekOfYear: 24,
year: "2018"
},
"2018-06-09": {
checkFirstOrLastOfMonth: 0,
day: "09",
dayOfWeek: "SAMSTAG",
formatedDate: "09 Jun 2018",
monthNo: "06",
shortMonthName: "Jun",
weekOfYear: 23,
year: "2018"
},
...
【问题讨论】:
-
永远不要使用
eval。然后编写你自己的解析器。 -
为什么不让它成为有效的 JSON?修复 HTTP API。
-
检查最外层表达式的类型 after 解析并没有使任何东西更 secure。
-
@Beri:修复 API 不在我手上,不好意思……
标签: javascript json node.js security parsing