将“标准” JSON字段添加到REST API中的序列化对象

Tntwyckoff

动机:Google JSON样式指南,我想在我的其余API中插入一些自定义序列化逻辑。我正在使用WebAPI 2和JSON.NET。我的目标是将响应的“有效负载”包装在主JSON响应的“数据”字段中,如样式指南中所述,在每个响应中都包含一个apiVersion字段,以及类似的东西。当然,控制器操作只会返回直接的POCO,而我想修改它们发送到的容器,而不是POCO本身,因此:

{
  "id": "111",
  "apiVersion": "1.0",
  "data": {
    "kind": "monkey",
    "name": "manny",
    "age": "3"
  },
  "error": null
}

...那种东西 因此,我设想在每个响应通过网络之前将少量标准数据插入到每个响应中。做到这一点的最佳方法是什么?

TIA。

西蒙·贝兰格

我相信您可以使用ActionFilterAttribute来实现这种行为。首先,您需要创建一个类来表示包装的响应(所有属性均为字符串,根据需要进行调整):

public class WrappedJsonResponse
{
    public string Id {get;set;}
    public string ApiVersion {get;set;}
    public object Data {get;set;}
    public string Error {get;set;}
}

ActionFilterAttribute允许您通过虚拟动作的执行后做一些处理OnActionExecuted方法:

public class WrappedJsonAttribute : ActionFilterAttribute
{
    public override void OnActionExecuted(HttpActionExecutedContext context)
    {
        // A POCO response will normally be wrapped in an ObjectContent
        var content = context.Response.Content as ObjectContent

        if(content != null)
        {
            // Create the WrappedJsonResponse object appropriately and
            // put the original result in the Data property
            content.Value = new WrappedJsonResponse { Data = content.Value };
            content.ObjectType = typeof(WrappedJsonResponse);
        }
    }
}

使用该属性,然后可以选择将其应用于所需的位置(整个控制器,仅操作或作为默认过滤器)。

注意:目前,我无法访问开发环境,也没有测试过滤器。如果这还不完整,那么它至少应该使您对如何完成操作有所了解。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将“标准” JSON字段添加到REST API中的序列化对象

来自分类Dev

将模型中未包含的字段添加到Django REST框架中的序列化器

来自分类Dev

自动将所有模型字段添加到Django Rest序列化器

来自分类Dev

如何使用Django Rest Framework将url字段添加到序列化器

来自分类Dev

Play Framework-将字段添加到JSON对象

来自分类Dev

如何将订单列表添加到jQuery Nestable JSON序列化中

来自分类Dev

使用PHP中的类型将嵌套对象序列化/反序列化为JSON

来自分类Dev

进行验证时将提取字段添加到Django模型序列化器

来自分类Dev

将标准偏差添加到 R 中的 barplot()

来自分类Dev

如何使用json.net将额外的属性添加到序列化的JSON字符串中?

来自分类Dev

使用Jackson将JSON响应中嵌套对象的字段反序列化

来自分类Dev

PHP序列化将控制字符添加到对象属性名称?

来自分类Dev

Django rest框架将dict添加到序列化器

来自分类Dev

如何将父字段名添加到json对象中新添加的行

来自分类Dev

如何将父字段名添加到json对象中新添加的行

来自分类Dev

Django Rest API:使用令牌身份验证将当前用户添加到用户字段

来自分类Dev

将数据字段添加到Ruby中的rest-client请求

来自分类Dev

使用Django Rest Framework将操作字段添加到帖子中

来自分类Dev

如何使用System.Text.Json API将流反序列化到对象

来自分类Dev

将JSON序列化器添加到每个模型类?

来自分类Dev

将JSON序列化器添加到每个模型类?

来自分类Dev

避免反序列化类将多个项目添加到构造函数中的列表

来自分类Dev

如何将独立于类的标签添加到XML序列化中

来自分类Dev

使用序列化程序将多个数据添加到模型中

来自分类Dev

将另一个类添加到 Django 中的序列化程序

来自分类Dev

将字段添加到Web API返回对象

来自分类Dev

使用sprayJSON(scala)将字段添加到现有JSON对象

来自分类Dev

使用 SprayJSON (scala) 将字段添加到现有的 JSON 对象

来自分类Dev

使用JSON.NET反序列化对象,但将某些属性放入类的成员中

Related 相关文章

  1. 1

    将“标准” JSON字段添加到REST API中的序列化对象

  2. 2

    将模型中未包含的字段添加到Django REST框架中的序列化器

  3. 3

    自动将所有模型字段添加到Django Rest序列化器

  4. 4

    如何使用Django Rest Framework将url字段添加到序列化器

  5. 5

    Play Framework-将字段添加到JSON对象

  6. 6

    如何将订单列表添加到jQuery Nestable JSON序列化中

  7. 7

    使用PHP中的类型将嵌套对象序列化/反序列化为JSON

  8. 8

    进行验证时将提取字段添加到Django模型序列化器

  9. 9

    将标准偏差添加到 R 中的 barplot()

  10. 10

    如何使用json.net将额外的属性添加到序列化的JSON字符串中?

  11. 11

    使用Jackson将JSON响应中嵌套对象的字段反序列化

  12. 12

    PHP序列化将控制字符添加到对象属性名称?

  13. 13

    Django rest框架将dict添加到序列化器

  14. 14

    如何将父字段名添加到json对象中新添加的行

  15. 15

    如何将父字段名添加到json对象中新添加的行

  16. 16

    Django Rest API:使用令牌身份验证将当前用户添加到用户字段

  17. 17

    将数据字段添加到Ruby中的rest-client请求

  18. 18

    使用Django Rest Framework将操作字段添加到帖子中

  19. 19

    如何使用System.Text.Json API将流反序列化到对象

  20. 20

    将JSON序列化器添加到每个模型类?

  21. 21

    将JSON序列化器添加到每个模型类?

  22. 22

    避免反序列化类将多个项目添加到构造函数中的列表

  23. 23

    如何将独立于类的标签添加到XML序列化中

  24. 24

    使用序列化程序将多个数据添加到模型中

  25. 25

    将另一个类添加到 Django 中的序列化程序

  26. 26

    将字段添加到Web API返回对象

  27. 27

    使用sprayJSON(scala)将字段添加到现有JSON对象

  28. 28

    使用 SprayJSON (scala) 将字段添加到现有的 JSON 对象

  29. 29

    使用JSON.NET反序列化对象,但将某些属性放入类的成员中

热门标签

归档