首页 > 解决方案 > 修复 JSON::ParserError: 416: '{' 处的意外令牌而不使用 EVAL

问题描述

我正在尝试解析Hash表示为 a 的 a String,举个例子:

arr = "[{\"key\"=>\"VALUE\"}, {\"key\"=>\"VAlUE\"}]"

JSON.parse arr

=> JSON::ParserError: 416: unexpected token at '{"key"=>"VALUE"}, {"key"=>"VALUE"}]'

好的,这很不幸,我意识到我要解析的不是 JSON。但我可以这样做:

arr = "[{\"key\"=>\"VALUE\"}, {\"key\"=>\"VALUE\"}]"

eval(arr)

=> [{"key"=>"VALUE"}, {"key"=>"VALUE"}]

这很酷,但由于安全风险,我不想使用 EVAL。

如何在不使用 EVAL 的情况下获得与 EVAL 相同的结果?

标签: jsonruby

解决方案


推荐阅读