【问题标题】:How to parse JSON to display in a Rails View?如何解析 JSON 以显示在 Rails 视图中?
【发布时间】:2013-08-08 21:08:37
【问题描述】:

我只是尝试使用 Google API 进行快速货币转换,并使用 jQuery 或 Rails 方法在 rails 视图中仅显示“汇率”信息。

返回的 JSON 格式如下:

{"to": "EUR", "rate": 0.74928817599999997, "from": "USD"}

到目前为止,我已经尝试了一个 jQuery Ajax 请求,如下所示:

$(document).ready(function(){
$.getJSON('http://rate-exchange.appspot.com/currency?from=USD&to=EUR', function(data) {
  var items = [];

  $.each(data, function(key, val) {
    items.push('<li id="' + key + '">' + val + '</li>');
  });

  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('#exchange');
});
});

我实际上并不需要 items 数组或无序列表。我刚刚从 jQuery 文档中复制了大部分内容,以确保它应该可以正常工作。

如果有任何有关此代码的帮助,或者是否有更好的 Rails 方式来实现相同的东西,我将不胜感激。

【问题讨论】:

    标签: jquery ruby-on-rails json parsing


    【解决方案1】:

    如果您可以从服务器中的 rails(而不是浏览器内的 javascript)向 Google API 进行查询,则使用

     @result=JSON.parse(response_body_as_string)
    

    @result 将是一个 Ruby 哈希对象,您可以根据需要在 Rails 视图中使用它。

    如果您打算从服务器连接到 Google API,最好将其作为后台作业执行,并将结果保存到数据库中以供接下来一小时使用。

    【讨论】:

    • 您能解释一下如何在服务器端执行此操作吗?我对使用 apis 和 rails 非常缺乏经验。如果不可能通过 jsonp 和 json 来做,我不明白任何人如何实际使用 api。
    【解决方案2】:

    如果您想在客户端发出请求,可以使用 jsonp 发出请求(不允许通过 JavaScript 跨不同主机的正常 HTTP 请求):

    $.ajax({
      type: "GET",
      url: "http://rate-exchange.appspot.com/currency?from=USD&to=EUR",
      dataType: "jsonp",
      success: function(data) {
        $('#yourId').html(data.rate); // populate the HTML element with id 'yourId' with the rate
      }
    });
    

    【讨论】:

    • 我不确定这是否适用于 google api。可能不支持 jsonp。以及如何在 html 视图中显示费率结果?
    • 嘿 user2514224,我已经针对 API 尝试了该代码,它确实记录了结果。我将修改代码,以便它填充具有给定 id 的元素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2017-03-30
    • 1970-01-01
    • 2016-06-15
    相关资源
    最近更新 更多