разбор json с ромбом - PullRequest
       10

разбор json с ромбом

0 голосов
/ 13 декабря 2010

Я пытаюсь проанализировать структуру JSON в базе данных, используя rhonobile, и мой код приведен ниже;

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

Проблема в том, что в базу данных ничего не сохраняется.Есть идеи?

Ответы [ 3 ]

1 голос
/ 30 августа 2013

Так как dailygainers является параметром для цикла do. Вам нужно реализовать его следующим образом:

mygainer.gainers = dailygainers ["dailygainers"]["gainers"]
mygainer.date = dailygainers ["dailygainers"]["date"]
mygainer.open = dailygainers ["dailygainers"]["Open"]
mygainer.close = dailygainers ["dailygainers"]["Close"]
mygainer.save
0 голосов
/ 17 декабря 2010

Если ваш веб-сервис не устанавливает правильные заголовки, возможно, вы возвращаете строковые данные вместо данных json.Вы должны использовать JSON.parse (@params ['body']) для преобразования строки в json.

Присоединение файла rholog.txt поможет выяснить, так ли это.

0 голосов
/ 13 декабря 2010

Попробуйте просмотреть журнал и активировать режим трассировки журнала, щелкнув правой кнопкой мыши на нем и выбрав опции-> Уровень = Трассировка.
Там будет несколько важных отладочных данных.Если нет, попробуйте поместить здесь полный журнал, чтобы мы могли помочь вам лучше.

...