2

我想改变 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_jsonapi gem

4

2 回答 2

2

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

此外,在 repo 中也提出了类似的问题:source

于 2019-03-19T14:32:05.287 回答
1

您可以使用稀疏字段集有选择地选择您想要的字段。

class MovieSerializer
  include FastJsonapi::ObjectSerializer

  attributes :name, :year
end

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

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

于 2019-03-19T14:59:03.890 回答