如何将响应格式从 fast_jsonapi 格式更改为 AMS gem 响应格式

how to change response format from fast_jsonapi format to AMS gem response format

我想将 fast_jsonapi gem 的响应格式更改为:

{
    "data": {
        "id": "8",
        "type": "directory",
        "attributes": {
            "firstname": "Naoufal",
            "lastname": "Huster",
        }
    }
}

为此:

{
  "id": "8",
  "firstname": "Naoufal",
  "lastname": "Huster",
}

我正在从使用 AMS gem 迁移到使用 fast_jsonapi,我想使用 fast_jsonapi 但在呈现数据时保持 AMS 的相同响应 json 格式.

Ruby 2.5.0 Rails 5.2.1 fast_jsonapigem

我认为这是不可能的。 fastjson_api gem 遵循 json api 标准。

此外,回购中也提出了类似的问题:source

您可以使用 sparse fieldsets 有选择地选择您想要的字段。

class MovieSerializer
  include FastJsonapi::ObjectSerializer

  attributes :name, :year
end

serializer = MovieSerializer.new(movie, { fields: { movie: [:name] } })
serializer.serializable_hash

如果您需要进一步展平数据,您可以创建一个辅助方法来手动展平 JSON 或者您可以尝试使用数组上的标准 .flatten 函数展平它或哈希取决于您的数据格式。如果您已经将其字符串化为 JSON.

,则无法执行展平