2010-12-13 93 views
0

我想解析一个JSON结构到数据库使用rhonobile和我的代码如下;解析json与rhomobile

def GetTopGainers 
    Rho::AsyncHttp.get(
     :url => 'http://www.xyz.com/xyz', 
     :callback => (url_for :action => :httpget_callback), 
     :callback_param => "") 

    redirect :action => :viewhttp 
    end 

    def httpget_callback 
    $httpresult = @params['body'][0].inspect 
    @params['body'].each do |dailygainers| 
    mygainer = Topgainers.new 
    mygainer.gainers = Topgainers["dailygainers"]["gainers"] 
    mygainer.date = Topgainers["dailygainers"]["date"] 
    mygainer.open = Topgainers["dailygainers"]["Open"] 
    mygainer.close = Topgainers["dailygainers"]["Close"] 
    mygainer.save 
    end 
    WebView.refresh 
    end 

问题是什么都没有保存到数据库。

任何想法?

回答

0

如果你的web服务没有设置正确的头文件,你可能会得到字符串数据而不是json数据。你可以使用JSON.parse(@params ['body'])将字符串转换为json。

附加rholog.txt将有助于查看是否属于这种情况。

0

尝试查看日志并激活日志的跟踪模式,单击其上的右键并选择选项 - >级别=跟踪。
会有一些重要的调试信息。如果没有,请尝试在这里放置完整的日志,以便我们可以更好地为您提供帮助。

1

由于dailygainers是参数到DO loop.You需要执行像这样

mygainer.gainers = dailygainers ["dailygainers"]["gainers"] 
mygainer.date = dailygainers ["dailygainers"]["date"] 
mygainer.open = dailygainers ["dailygainers"]["Open"] 
mygainer.close = dailygainers ["dailygainers"]["Close"] 
mygainer.save