Rho Mobile:使用JSON解析并创建模型

时间:2013-07-03 12:39:32

标签: ruby json rhomobile rhodes

我可以使用以下代码解析JSON

$httpresult = @params['body']
$jsonresult = Rho::JSON.parse($httpresult)

但我不知道如何从$jsonresult创建模型。

2 个答案:

答案 0 :(得分:0)

首先,使用app_info,您可以打印来自服务器的结果,以检查响应是否是有效的JSON字符串。 其次,我认为你必须解码url才能使用:

来解析它

Rho :: JSON.parse(Rho :: RhoSupport.url_decode(@params ['body']))

答案 1 :(得分:0)

在json_result中获得数据后,可以将它们放在预先存在的模型中。 假设您已经创建了名为“Product”的模型,则可以使用事务来加速该过程。

在模块的开头,您需要型号名称:

require_source 'Product'

然后你可以做这个回调:

 def get_callback
    if @params['status'] == "ok"     
      json_result = Rho::JSON.parse(@params['body'])
      db = ::Rho::RHO.get_src_db('Product') 
      db.start_transaction
      Product.delete_all
      begin
        json_result.each do |item|
          Product.create({:Brand => item["B rand"], :Name => item["Name"], :SKU => d["SKU"]})
        end
        db.commit 
      rescue Exception => e
        trace_msg = e.backtrace.join("\n")
        puts 'Application initialize failed: ' + e.inspect + ";Trace: #{trace_msg}"
        db.rollback 
      end
      WebView.navigate Rho::RhoConfig.start_path
    else
      WebView.navigate url_for :action => :show_error 
    end    
  end