【问题标题】:Turning a json string into a URL encoded string (Rails)将 json 字符串转换为 URL 编码字符串(Rails)
【发布时间】:2014-11-03 00:57:39
【问题描述】:

我如何转换这个 json var

email = {"email":"name@gmail.com"}

进入这个编码字符串?

%7B%22email%22%3A%22name%40gmail.com%22%7D

【问题讨论】:

    标签: ruby-on-rails ruby json


    【解决方案1】:

    当然可以使用uri 显示的库here

    [2] pry(main)> require 'uri'
    => true
    [3] pry(main)> URI.encode('{"email":"name@gmail.com"}')
    => "%7B%22email%22:%22name@gmail.com%22%7D"
    

    【讨论】:

    【解决方案2】:

    使用 CGI.escape,而不是 URI.encode/escape。 URI.encode 不会转义 JSON 数组的括号。

    emails = '{"list_1":[{"Jim":"jim@gmail.com"},{"Joe":"joe@gmail.com"}]}'
    > URI::encode(emails)
    => "%7B%22list_1%22:[%7B%22Jim%22:%22jim@gmail.com%22%7D,%7B%22Joe%22:%22joe@gmail.com%22%7D]%7D"
    > CGI.escape(emails)
    => "%7B%22list_1%22%3A%5B%7B%22Jim%22%3A%22jim%40gmail.com%22%7D%2C%7B%22Joe%22%3A%22joe%40gmail.com%22%7D%5D%7D"
    

    ruby - What's the difference between URI.escape and CGI.escape - Stack Overflow

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-23
      • 2016-05-16
      • 2012-10-26
      • 1970-01-01
      • 2011-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多