我正在使用Rails ActiveModel Serializer将JSON输出到API端点。
我正在获取以下JSON输出:
{
"data":[
{
"id":"396",
"type":"profiles",
"attributes":{
"name":"Impossibles",
"created-at":"2017-05-11T18:14:06.201-04:00",
"updated-at":"2018-04-01T13:34:15.905-04:00",
"website":"http://soundcloud.com/impossibles"
}
}
]
}
但是希望它的格式如下:
{
"data":[
{
"id":"396",
"type":"profiles",
"name":"Impossibles",
"created-at":"2017-05-11T18:14:06.201-04:00",
"updated-at":"2018-04-01T13:34:15.905-04:00",
"website":"http://soundcloud.com/impossibles"
}
]
}
尝试避免在返回的JSON中额外嵌套。 有没有办法删除“属性”键?
这是我的序列化器:
class ProfileSerializer < ActiveModel::Serializer
attributes :id, :name, :created_at, :updated_at, :website
end
还有我的控制器:
def show
profile = Profile.find(params[:id])
render json: profile, status: :ok
end
答案 0 :(得分:0)
在阅读了一些GitHub问题之后,看来“属性”嵌套来自JSON API规范,并且是的预期行为: https://jsonapi.org/format/#document-resource-objects
此问题很有帮助: https://github.com/rails-api/active_model_serializers/issues/2202
看起来像功能,而不是错误。