论坛首页 Ruby版 ruby

[已解决]如何将一个字符串转为ruby的Array和hash呢?

浏览 771 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2008-05-14
各位好。
有一字符串。是从客户端提交的。是通过JavaScript组合而成的:
[{:name=>"xqstation",:page=>"xxxxx",:qq=>"xxxxx"},{:name=>"who",:page=>"hhhh",:qq=>"mmmm"}, ....]

可以看出,这个是又数组中包含hash的字符串。
我需要在rails中接收并处理这些数据。

外围的数组是用来定位顺序的,之后要保存到数据库。hash就相当于对象了。

有什么方法可以直接转化吗?
   
最后更新时间:2008-05-14
使用eval
   
0 请登录后投票
最后更新时间:2008-05-14
典型的json使用场景。
把javascript对象拼装成字符串,用json for javascript库。
在ruby端把字符串解包成ruby数据结构,用json for ruby库。

http://www.json.org/
http://www.json.org/js.html
http://json.rubyforge.org/
   
0 请登录后投票
最后更新时间:2008-05-14
呃。到底用哪个?
我没试。不过领导另外要我组成一个格式的字符串。
像这样:
-
name: xqstation
home: xxxx
qq: xxxx
-
name: mmm
home: mmmm
qq: mmmm

说是把ruby对象存到数据库就是这个格式。。谢谢两位了。
收藏本帖
   
0 请登录后投票
最后更新时间:2008-05-14
xqstation 写道
呃。到底用哪个?
我没试。不过领导另外要我组成一个格式的字符串。
像这样:
-
name: xqstation
home: xxxx
qq: xxxx
-
name: mmm
home: mmmm
qq: mmmm

说是把ruby对象存到数据库就是这个格式。。谢谢两位了。
收藏本帖


JSON简介:

json就是用string表达javascript数据结构的一个规则,与你自己拼装的字符串格式基本一样。
也可以理解成文本型的序列化。

对于javascript端,可以引用一个javascript文件:
http://www.json.org/json2.js
它提供了两个方法:
1. 将javascript对象转换成string
JSON.stringify(value); //value是一个javascript对象,返回值是个string。
2. 将string转换成javascript对象
JSON.parse(text); //text是个string,返回值是个javascript对象。

对于ruby端,先安装json的gem:
gem install json
它同样提供两个方法,用于ruby对象和string之间的互相转换:
ruby_object.to_json #返回string
JSON.parse(text) #传入string返回ruby对象
在使用的文件中 require 'json'。

--

你现在说的string格式,应该是yaml的吧?
如果把整个串存储于数据库的一个字段中,以后再想用SQL进行细致的查询就不容易了。
这也是rails那本书里讲到的,serialize型的字段不推荐滥用。
   
0 请登录后投票
最后更新时间:2008-05-14
对。就是YAML。
我也不大明白为什么要把一大佗东西全塞在一个字段里面。


那个JSON在Java里也有哦。好象用过。谢谢你啦。
   
0 请登录后投票
最后更新时间:2008-05-15
ActiveSupport::JSON.decode params[:urdata]
然后就得到一个包含了你的model的数组
   
0 请登录后投票
最后更新时间:2008-05-15
ActiveSupport::JSON.decode params[:urdata]
然后就得到一个包含了你的model的数组

晕,点了两次提交后就重复提交了,JavaEye好像没做限制的?也没办法删除自己发重复的回帖。
   
0 请登录后投票
论坛首页 Ruby版 ruby

跳转论坛:
JavaEye推荐