我正在 Ruby/Sinatra 中构建一个出版物,它使用 JSON 中的两个参数(“local_delivery_time”和“tubelines”)响应 GET 调用(来自我无法控制的 API 服务器)。目前一个示例调用是;
因此,一旦它从 uri 未编码,“tubelines”参数就会作为 Ruby 哈希(我相信?),即
{"Bakerloo"=>"0", "Central"=>"0", "Circle"=>"0", "District"=>"0", "DLR"=>"0", "Hammersmith and City "=>"0", "Jubilee"=>"0", "Metropolitan"=>"1", "Northern"=>"0", "Overground"=>"1", "Piccadilly"=>"0 ", "维多利亚"=>"0", "滑铁卢和城市"=>"0"}
但是当我尝试在它上面运行这个 .each 代码时(将值为“1”的键推送到另一个数组);
tubelines.each do |key, value|
if value == "1"
@selectedlines.push(key)
end
end
我收到此错误“NoMethodError - # 的未定义方法‘每个’”,它显示带有转义引号的散列。像这样;
{\"Bakerloo\"=>\"0\", \"中央\"=>\"0\", \"Circle\"=>\"0\", \"区\"=>\"0 \", \"DLR\"=>\"0\", \"Hammersmith and City\"=>\"0\", \"Jubilee\"=>\"0\", \"Metropolitan\"= >\"1\", \"北方\"=>\"0\", \"地上\"=>\"1\", \"皮卡迪利\"=>\"0\", \"维多利亚\ "=>\"0\", \"滑铁卢和城市\"=>\"0\"}
我无法更改调用的格式,那么如何处理转义引号以便使用哈希?我尝试通过 JSON 解析它,但解析器似乎对转义引号有同样的问题(它返回一个意外的令牌错误),当我手动输入完全相同的哈希时,代码运行良好。
我已经看到很多关于编码 JSON 对象和转义引号的问题,但没有发现任何关于在接收 JSON 对象或调用时处理转义引号的问题......