0

我正在研究 Ruby on Rails。我有一个像下面这样的哈希

{"attachment"=>"{:output_dir=>\"/home/mypath/\", :process_hash=>\"8b9d9c51\", :type=>\"pdf\", :processed_dir=>\"/513/9a1/88a\", :pdf=>\"/system/path/a3ae1194f76d737b6cfb141fa0fde17f78f2e94e.pdf\", :slides_count=>4, :meta=>{:swfs=>\"{/system/path/88a/8b9d9c51[*,0].swf,4}\", :pngs=>\"/system/path/8b9d9c51{page}.png\", :json=>\"/system/path/8b9d9c51.js\"}}"

在我的代码中我有

JSON.parse(参数[:附件])

这给我一个错误

JSON::ParserError (757: '{:output_dir=>"/home/path", :process_hash=>"8b9d9c51", :type=>"pdf", :processed_dir=>"/513/9a1/88a ", :pdf=>"/system/path/a3ae1194f76d737b6cfb141fa0fde17f78f2e94e.pdf", :slides_count=>4, :meta=>{:swfs=>"{/system/path/8b9d9c51[*,0].swf,4} ", :pngs=>"/system/path/8b9d9c51{page}.png", :json=>"/system/path/8b9d9c51.js"}}'):

建议我如何解决这个问题。

4

1 回答 1

2

JSON.parse 将 JSON 格式的字符串解析为哈希,而不是相反。我不确定你想完成什么?

如果您尝试将 Hash 转换为 JSON(字符串),您可以使用

参数[:附件].to_json

如果您尝试将 JSON(字符串)转换为 Hash,您可以使用

JSON.parse(参数[:附件])

但是,您的字符串看起来不像 JSON(它包括=>它应该具有的位置:

有效的 JSON 如下所示:

{ "attachment": { "output_dir": "/home/mypath", "process_hash": "89r2432" } }

于 2013-03-08T09:26:59.377 回答