【问题标题】:Convert a Ruby Hash into JSON (without escape characters)将 Ruby 哈希转换为 JSON(不带转义字符)
【发布时间】:2014-10-20 19:43:22
【问题描述】:

我有一个哈希:

my_hash = {"bob.johnson@example.com"=>{"first"=>"Bob", "last"=>"Johnson"}, "lisa.dell@example.com"=>{"first"=>"Lisa", "last"=>"Dell"}}

当我尝试用my_hash.to_json 对其进行序列化时,我得到了:

"{\"bob.johnson@example.com\":{\"first\":\"Bob\",\"last\":\"Johnson\"},\"lisa.dell@example.com\":{\"first\":\"Lisa\",\"last\":\"Dell\"}}"

如何在不获取转义字符的情况下将 Hash 转换为 JSON 格式?

【问题讨论】:

    标签: ruby-on-rails ruby json serialization hash


    【解决方案1】:

    这些转义字符在 Ruby String 中转义 "(您的 my_hash.to_json 输出)。如果你这样做了

    puts my_hash.to_json
    

    您会看到实际上这些转义字符并未添加到输出字符串中。

    【讨论】:

    • @Numbers 是的,你应该是。
    • 你需要这个库,它在 ruby​​ 标准库中,不在核心中:require 'json'
    • 这是给@Numbers 的提示,而不是给你的。
    • 如果我不想打印这个字符串,这将不起作用,而只是将它发送到没有转义字符的其他服务。
    • Ruby 的“puts”似乎删除了转义字符,但如果你传递 json,接收器会用反斜杠等弄得一团糟(显示在接收器的错误日志中收到的参数中)。如果您使用“as json”,它不会造成反斜杠混乱,当您想保留整数、小数等时,它会将所有值转换为字符串。我正在手动构建 JSON 以避免这两种损坏的方法。 ruby 中是否有“转换为 json”,它只是发送你给它的“作为 json”?
    猜你喜欢
    • 1970-01-01
    • 2013-07-06
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 2015-04-02
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多