加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Rails中合并两个带有匹配ID的JSON

发布时间:2020-12-17 01:30:20 所属栏目:百科 来源:网络整理
导读:我有两个结构如下的 JSON.第一个来自API: [ { "course_code":"Basic 101 - 0913","name":"Basic 101","start_at":"2013-09-16T00:00:00+02:00","end_at":"2013-10-13T23:55:00+02:00","workflow_state":"available" },{"course_code":"Medium 201 - 0913","
我有两个结构如下的 JSON.第一个来自API:

[
  {
   "course_code":"Basic 101 - 0913","name":"Basic 101","start_at":"2013-09-16T00:00:00+02:00","end_at":"2013-10-13T23:55:00+02:00","workflow_state":"available"
  },{"course_code":"Medium 201 - 0913","name":"Medium 201","start_at":"2013-08-06T16:55:25+02:00","end_at":null,"workflow_state":"available"
  }
]

第二个是从我的数据库导出的JSON:

[
  {
   "id":1,"course_id":"Basic 101","name":"Basic Level","description":"blablabla","discipline_id":"1","duration":"28","created_at":null,"updated_at":null
  },{
   "id":2,"course_id":"Medium 201","name":"Medium Level","updated_at":null
  }
]

我想将这两个JSON合并为一个,在第一个JSON中匹配:name,在第二个JSON中使用:course_id.

如果你知道在Rails中使用JSON的好教程,我真的很感兴趣.

解决方法

快速回答,让你知道去哪里.假设第一个json在json1中,第二个在json2变量中,这段代码:

require 'json'

arr1 = JSON.parse(json1)
arr2 = JSON.parse(json2)
mrg = []
arr1.each do |el1|
  arr2.each do |el2|
    if el2['course_id'] == el1['name']
      mrg.push(el1.merge(el2))
    end
  end
end

p mrg

将打印:

[
  {
   "course_code"=>"Basic 101 - 0913","name"=>"Basic Level","start_at"=>"2013-09-16T00:00:00+02:00","end_at"=>"2013-10-13T23:55:00+02:00","workflow_state"=>"available","id"=>1,"course_id"=>"Basic 101","description"=>"blablabla","discipline_id"=>"1","duration"=>"28","created_at"=>nil,"updated_at"=>nil
  },{
   "course_code"=>"Medium 201 - 0913","name"=>"Medium Level","start_at"=>"2013-08-06T16:55:25+02:00","end_at"=>nil,"id"=>2,"course_id"=>"Medium 201","updated_at"=>nil
  }
]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读