如果json字符串比较复杂,包含单引号,双引号;这里有两个办法:

  • 用双引号包含json字符串,并对json字符串中的每个双引号进行转义(这个操作,有些ide可以支持,rubymine中没发现)比较繁琐
  • 将json字符串写入到json文件中,通过读取json文件的方式解析
    require 'json'
    require 'pp'
    json = File.read('input.json')
    obj = JSON.parse(json)
    pp obj
    require 'json'
    {:hello => "goodbye"}.to_json #=> "{\"hello\":\"goodbye\"}"
    1.to_json #=> "1"

    JSON.generate只允许将对象或数组转换成JSON字符串,to_json可以接收许多类型

    三. [] (object, opts = {})

    如果对象是字符串类型,解析字符串并将解析后的结果作为Ruby数据结构返回。否则就会从Ruby数据结构对象生成一个JSON文本并返回它。

    相当于会先判断对象类型,如果是ruby json类型则转化为json字符串;如果是json字符串则转化为ruby josn类型













  •