代码之家  ›  专栏  ›  技术社区  ›  Niro

Ruby:从字符串到JSON数组

  •  1
  • Niro  · 技术社区  · 6 年前

    我从一个post表单中检索到一个字符串

    "[{"Name": "David", "ID": "2"}, {"Name": "Logan" , "ID": "3"}]"
    

    我希望自己迭代访问每个JSON对象。或者理想情况下,将此字符串转换为Ruby中的JSON数组。你知道怎么做吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   Ursus    6 年前

    使用 JSON.parse :

    require 'json'
    => true
    JSON.parse('[{"Name": "David", "ID": "2"}, {"Name": "Logan" , "ID": "3"}]')
    =>
    [
        [0] {
            "Name" => "David",
              "ID" => "2"
        },
        [1] {
            "Name" => "Logan",
              "ID" => "3"
        }
    ]
    
        2
  •  0
  •   spickermann    6 年前

    转换 JSON string 从API返回到JSON字符串的Ruby数组中,我会这样做:

    json = '[{"Name": "David", "ID": "2"}, {"Name": "Logan" , "ID": "3"}]'
    
    require 'json'
    
    ruby_array_of_ruby_hashes = JSON.parse(json)
    ruby_array_of_json = ruby_array_of_ruby_hashes.map(&:to_json)
    #=> ["{\"Name\":\"David\",\"ID\":\"2\"}","{\"Name\":\"Logan\",\"ID\":\"3\"}"]
    

    或短:

    JSON.parse(json).map(&:to_json)