2010-12-13 16 views
0

Ich versuche, eine JSON-Struktur in eine Datenbank mit rhonobile zu parsen und mein Code ist unten;Parsing Json mit 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 

Das Problem ist, dass nichts in der Datenbank gespeichert wird.

Irgendwelche Ideen?

Antwort

0

Wenn Ihr Webdienst die richtigen Header nicht definiert, erhalten Sie möglicherweise Zeichenfolgedaten statt JSON-Daten. Sie würden JSON.parse (@params ['body']) verwenden, um die Zeichenfolge in json zu konvertieren.

Das Anhängen der rholog.txt würde helfen zu sehen, ob dies der Fall ist.

0

Versuchen Sie, das Protokoll anzuzeigen und aktivieren Sie den Trace-Modus des Protokolls, klicken Sie mit der rechten Maustaste darauf und wählen Sie Optionen-> Level = Trace.
Es würde einige wichtige Debugging-Informationen geben. Wenn nicht, versuchen Sie, das vollständige Protokoll hier zu speichern, damit wir Ihnen besser helfen können.

1

Da dailygainers ist der Parameter auf die do loop.You Notwendigkeit es so

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