我有一個對象(Institution),我想要使用JSON獲取與此對象關聯的2個數組(標記和附件)。在JSON中獲取嵌套數組
要清楚:對於1個機構,我有3個標記,每個標記都有一個附件。
這是我的JSON
文件的代碼:
if @data['admin_institution']
json.extract! @data['admin_institution'], :id, :name, :phone, :address, :site, :created_at, :updated_at
if @data['admin_institution'].marks
json.marks @data['admin_institution'].marks
json.array!(@data['admin_institution'].marks) do | admin_mark|
json.attachment admin_mark.attachment
end
end
else
json.set! :response do
json.set! :error, 'Not Found!'
end
end
我想複製這樣的事情:
{
id: 14,
name: "Ins3",
phone: "793215-2555",
address: "lreewrwklkr",
site: "lkerlke.com",
created_at: "2016-03-01T14:00:37.000-03:00",
updated_at: "2016-03-01T14:00:37.000-03:00",
- marks: [
- {
id: 17,
admin_attachment_id: 927,
admin_bookmark_id: 3,
admin_institution_id: 14,
created_at: "2016-03-01T14:00:37.000-03:00",
updated_at: "2016-03-01T14:00:37.000-03:00"
},
{
id: 18,
admin_attachment_id: 945,
admin_bookmark_id: 1,
admin_institution_id: 14,
created_at: "2016-03-01T14:00:37.000-03:00",
updated_at: "2016-03-01T14:00:37.000-03:00"
}
],
- attachment: {
id: 927,
name: "nature-16",
title: "Nature-16",
description: null,
mime_type: "image/jpeg",
url: "/uploads/nature-16.jpg",
created_at: "2016-02-29T09:21:09.000-03:00",
updated_at: "2016-02-29T09:21:09.000-03:00"
}
}
相反,我得到最後array
(附件)只值。提前致謝。
UPDATE:
我用我的機構模型through-association
然後我可以通過標記「直接」獲得的附件,沒有做標記的loop
。以下code
給我幾乎所有我想要的。
if @data['admin_institution']
json.extract! @data['admin_institution'], :id, :name, :phone, :address, :site, :created_at, :updated_at, :marks, :attachments
else
json.set! :response do
json.set! :error, 'Not Found!'
end
end
它返回的機構,標記和附件,但沒有嵌套。我要在機構內部標記和標記內的附件。我怎樣才能使它工作?
我用'jbuilder'生成JSON結構。 –
那麼?我也在使用。 – developer033