2010-12-13 28 views
0

J'essaie d'analyser une structure JSON dans une base de données en utilisant rhonobile et mon code est ci-dessous;analyse json avec 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 

Le problème est que rien n'est enregistré dans la base de données.

Des idées?

Répondre

0

Si votre service Web ne définit pas les en-têtes appropriés, il se peut que vous récupériez des données chaîne à la place des données json. Vous utiliseriez JSON.parse (@params ['body']) pour convertir la chaîne en json. Joindre le fichier rholog.txt aiderait à voir si c'est le cas.

0

Essayez d'afficher le journal et activer le mode trace du journal, en cliquant avec le bouton droit sur celui-ci et choisissez options-> Niveau = Trace.
Il y aurait des informations de débogage importantes. Sinon, essayez de mettre ici le journal complet, afin que nous puissions mieux vous aider.

1

Depuis dailygainers est le paramètre à la do loop.You besoin de mettre en œuvre comme cette

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