jerryqd
2009-08-01 17:58 阅读 789

如果把一个JSON的字符串转换成Ruby对象?

如果把一个JSON的字符串转换成Ruby对象?
好像Ruby没有原生的方法之类的。请给一些代码提示,谢谢

我安的plugin

gem install json
但在使用过程中一直报错。
JSON.parse(jsonstr)一直报错,但里面的jsonstr是正确的。我已经加了require 'json'

不知道在Ruby1.9这么高的版本中,有没有解决方案。
[b]问题补充:[/b]
我的jsonstr是这样的。{name:'peter',sex:'female'}
我想把它转换成json对象。
你用的是直接的数组呀,我还以为parse方法是把jsonstr转成json对象的。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    hooopo Hooopo 2009-08-01 23:49

    是你的jsonstr有问题,正确的写法是这样的:
    [code="ruby"]

    irb(main):006:0> require 'json'
    => false
    irb(main):007:0> json_str = "{\"name\":\"peter\",\"sex\":\"female\"}"
    => "{\"name\":\"peter\",\"sex\":\"female\"}"
    irb(main):008:0> h = JSON.parse json_str
    => {"name"=>"peter", "sex"=>"female"}
    irb(main):009:0> h["name"]
    => "peter"
    irb(main):010:0> h["sex"]
    => "female"
    irb(main):011:0>
    [/code]

    点赞 评论 复制链接分享
  • hooopo Hooopo 2009-08-01 18:26

    报什么错啊?
    刚才试了一下,没什么问题。。。
    [code="ruby"]

    irb(main):012:0> require 'json'
    => false
    irb(main):013:0> array_json = "[1, 2, 3, 4]"
    => "[1, 2, 3, 4]"
    irb(main):014:0> array = JSON.parse array_json
    => [1, 2, 3, 4]
    irb(main):015:0> array.first
    => 1
    irb(main):016:0>
    [/code]

    点赞 评论 复制链接分享

相关推荐