【问题标题】:issue with render json for array数组的渲染 json 问题
【发布时间】:2016-06-07 11:07:43
【问题描述】:

我有这个数组来自我的服务器。当我使用 puts 时会这样返回:

formatted_total_price
£66.00
formatted_total_price
£128.00
formatted_total_price
£246.00
formatted_total_price
£243.20
formatted_total_price
£242.86
formatted_total_price
£242.50

所以我只是尝试这样做:

price1.each do |price11|
  price11.json {render json: price11.as_json}
end

但是这会返回此错误:

NoMethodError (undefined method `json' for ["formatted_total_price", "£66.00"]:Array):

我想要的是让formatted_total_price 和£66.00 匹配起来看起来像这样:

"formatted_total_price":"£66.00"

这是我的实际代码:

doc.xpath("//script[@type='text/javascript']/text()").each do |text|
       if text.content =~ /more_options_on_polling/
         price1 = text.to_s.scan(/\"(formatted_total_price)\":\"(.+?)\"/).uniq
         description = text.to_s.scan(/\"(ticket_desc)\":\"(.+?)\"/).uniq
         price = price1 + description
         price1.each do |price11|
           price11.json {render json: price11.as_json}
         end
       end

编辑 好的,这就是我所拥有的:

formatted_total_price
£66.00
formatted_total_price
£128.00
formatted_total_price
£246.00
formatted_total_price
£243.20
formatted_total_price
£242.86
formatted_total_price
£242.50
ticket_desc
Later Owl Ticket
ticket_desc
Later Owl Ticket+Collector Ticket &#64 extra £4.95 per ticket
ticket_desc
Later Owl + Chance For VIP Upgrade
ticket_desc
VIP Ticket
ticket_desc
VIP Ticket + Collector Ticket &#64 extra £4.95 per ticket
ticket_desc
Skydeck Package
ticket_desc
5 Person Skydeck Table
ticket_desc
7 Person Skydeck Table
ticket_desc
10 Person Skydeck Table

我想要的和上次一样,但更像这样:

"formatted_total_price" : "£66.00",
"ticket_desc" : "Later Owl Ticket"

另外,如果ticket_desc 有任何包含+ 符号的内容,我希望忽略它(除非您知道更好的方法,否则我可以自己执行此操作!!)

【问题讨论】:

  • 如果我正确理解代码,price11 是一个字符串吗?那么为什么字符串应该有一个 .json 方法呢?另外,你为什么要在每个循环中渲染 json,我认为每个请求你应该只渲染一次。

标签: ruby-on-rails arrays json


【解决方案1】:
a = Array.new

price1.each do |p|
    a.merge({p[0] => p[1]})
end

render json: a.to_json

或者干脆你可以做

price1.map{|a| { a[0] => a[1] } }.to_json

【讨论】:

  • 你好!这是完美的,快速的额外问题。如果我想添加描述。但是有这样description: description 在同一个数组中吗? (所以 description1 将是第一个格式化的总价格)我该怎么做?
  • 你能给出样本输入和你想要的确切输出吗?
  • 我现在加进去
猜你喜欢
  • 1970-01-01
  • 2014-03-20
  • 2014-11-14
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多