首页
学习
活动
专区
圈层
工具
发布

Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化

前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET Web...在ASP.NET Web API中,媒体类型格式化器(Media-type Formatter)是一种能够做以下工作的对象: 从HTTP消息体读取CLR(公共语言运行时)对象 将CLR对象写入HTTP消息体...动作方法或以返回一个匿名对象,并将其序列化成JSON。...这么做的主要原因是: 将你的Web API响应限制到特定的媒体类型。例如,你可能决定只支持JSON响应,而删除XML格式化器。 用一个自定义格式化器代替默认的格式化器。...; 现在,此控制器动作将返回类似于如下形式的JSON: {"$id":"1","Name":"Sales","Manager":{"$id":"2","Name":"Alice","Department

2.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    以太坊区块链 Asp.Net Core的安全API设计 (下)

    这需要有效的accessToken才能工作,否则,API层将响应401 HTTP响应。 5.login_btn单击是一个两步功能。首先,它要求用户签署任意消息。...签名后,它会将帐户,签名,明文消息和带前缀的哈希发送到令牌端点。 请注意,web3.personal.sign将十六进制格式(0x ...)的普通字符串的字节数组作为输入。...运行两个应用程序并使用安装了Metamask插件的浏览器导航到客户端。请记住,为了将src/main.js文件构建到js/main.build.js,你需要从Powershell运行webpac命令。...如果一切正常,客户端将检索coinbase,你将在页面上看到你的帐户: 如果你现在单击“请求数据”按钮,将获得HTTP响应401。...如果现在单击“请求数据”按钮,将收到HTTP响应200和数据负载: 从签名中检索以太坊帐户 到目前为止,EthereumJwtApi是一个简单的JWT Asp.Net核心示例,因为它不提供任何有效的身份验证方法

    1.3K30

    Asp.Net WebApi核心对象解析(一)

    (3).System.AspNet.WebApi.Core:包含核心WebApi编程模型和运行时组件。      ...ASP.NET Web API的路由运行机制如下:       (1).找到控制器,网络API将“控制器”的值 {}控制变量。      ...(2).将HTTP请求消息的各元素转换成控制器操作方法的参数,并将操作方法的返回值转换为有效的HTTP响应正文。...(HTTP响应body的数据格式可以客户端和服务器进行协商,默认为json格式,对于json格式的好处,在这里就不做介绍,但是个人觉得json格式应该会成为以后数据格式的重心。)   ...ASP.NET Web API框架支持从请求元素到操作方法参数的绑定。对于HTTP响应值转换成适当的HTTP响应消息正文。

    5.4K70

    Web API--入门--(一)ASP.NET Web API 2(C#)入门

    将项目命名为“ProductsApp”,然后单击“确定”。 ? 在“ 新建ASP.NET项目 ”对话框中,选择“ 空”模板。在“添加文件夹和核心参考”下,查看Web API。单击确定。 ?...添加模型 一个模型是代表你的应用程序中的数据的对象。ASP.NET Web API可以自动将您的模型序列化为JSON,XML或其他格式,然后将序列化数据写入HTTP响应消息的正文。...将类命名为“产品”。将以下属性添加到Product类中。...我们将添加一个控制器,可以返回产品列表或由ID指定的单个产品。 注意 如果您使用ASP.NET MVC,您已经熟悉了控制器。...控制器定义了返回产品的两种方法: 该GetAllProducts方法将整个产品列表作为IEnumerable 类型返回。 该GetProduct方法通过其ID来查找单个产品。 而已!

    5.9K10

    了解ASP.NET MVC几种ActionResult的本质:JavaScriptResult & JsonResult

    是如何将Action执行的结果响应给客户端的。...如下面的代码片断所示,JavaScriptResult的属性Script表示响应的JavaScript脚本,而用于响应JavaScript脚本的ExecuteResult方法除了将脚本内容写入当前HttpResponse...但是对于后台程序来说,数据却是通过一个基于某种CLR类型的对象来承载,当客户端调用某个Action方法并希望以JSON的格式返回请求的数据时,ASP.NET MVC需要有一种机制将CLR对象转换成JSON...如下面的代码片断所示,JsonResult具有一个object类型的属性Data表示需要被转换成JSON格式的数据对象。...属性ContentEncoding和ContentType表示为当前响应设置的编码方式和媒体类型,默认采用的媒体类型为“application/json”。

    2K80

    了解ASP.NET MVC几种ActionResult的本质:EmptyResult & ContentResult

    是如何将Action执行的结果响应给客户端的。...如下面的代码片断所示,JavaScriptResult的属性Script表示响应的JavaScript脚本,而用于响应JavaScript脚本的ExecuteResult方法除了将脚本内容写入当前HttpResponse...但是对于后台程序来说,数据却是通过一个基于某种CLR类型的对象来承载,当客户端调用某个Action方法并希望以JSON的格式返回请求的数据时,ASP.NET MVC需要有一种机制将CLR对象转换成JSON...如下面的代码片断所示,JsonResult具有一个object类型的属性Data表示需要被转换成JSON格式的数据对象。...属性ContentEncoding和ContentType表示为当前响应设置的编码方式和媒体类型,默认采用的媒体类型为“application/json”。

    2.1K50

    Asp.Net Web API 2第十四课——Content Negotiation(内容协商)

    前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.html 本文描述ASP.NET Web...HTTP规范(RFC 2616)将内容协商定义为“在有多个表现可用时,为一个给定的响应选择最佳表现的过程”。...在HTTP中内容协商的主要机制是以下请求报头: Accept:响应可接收的媒体类型,如“application/json”、“application/xml”,或者自定义媒体类型,如“application...Serialization——序列化 如果Web API控制器返回一个CLR类型的响应,(请求处理)管线会对返回值进行序列化,并将其写入HTTP响应体。...用于响应的媒体类型 如果未找到格式化器,方法返回null,而客户端会接收到一个HTTP的406(不可接收的)错误。

    1K10

    .net core 自定义规范响应的中间件

    在本文中,我们将介绍如何使用 .NET Core 中的中间件来自定义规范响应,以便在 API 调用时返回统一的格式和错误信息。...在 InvokeAsync方法中,修改响应的内容类型为 application/json,并将 JSON 格式的 ApiResponse写入到响应体中。...具体来说,如果响应的状态码为 4xx 或5xx,则中间件将返回一个包含错误消息和数据的 ApiResponse 对象;否则,中间件将返回一个包含成功消息和数据的 ApiResponse 对象。...StatusCode属性指示错误的状态码,Message 属性包含有关错误的消息。 使用 ApiError 类可以帮助我们标准化应用程序中的错误响应格式。...结论 通过使用 ASP.NET Core 中间件和常用类,我们可以自定义 ASP.NET Core 应用程序中的响应格式,并标准化应用程序中的响应格式。

    63250

    ASP.NET Core解析Protobuf格式数据

    ASP.NET Core通过IInputFormatter来解析输入的数据,并进行模型绑定(Model Binding);通过IOutputFormatter来解析输出的数据,来格式化响应(format...ASP.NET Core解析Protocol Buffers ASP.NET Core默认只支持对application/json的解析,要解析protobuf格式数据,需要引入nuget包:AspCoreProtobufFormatters...此外,通过Grpc.Tools生成的C#类型中,集合类型的属性是只读的,导致ASP.NET Core中默认的json formatter在进行模型绑定时,无法给集合类行属性赋值。...格式(IMessage类型)数据序列化为json格式时,需要将先注册相应的类型: using Google.Protobuf; using Google.Protobuf.Reflection; ​ namespace...如果想要返回json格式数据,可以根据内容协商机制在Accept头字段中指定application/json。

    1.4K10

    ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

    : Action:Index() 将响应/home/index的请求 Action: Test() 将响应/home/test的请求 Action: DoSomething() 将响应/home/dosomething...{ [NonAction] public void LogicMethod(){ } } 3、控制器操作(Action)返回类型说明 ASP.NET Core MVC 限定...不过在定义Action方法的时候,返回值类型也可以定义成string、int等,这些自定义的返回类型会在返回到响应流之前被框架自动包装到合适的ActionResult子类型中。...返回对象的JSON序列化结果 FileResult File() 返回要写入响应中的二进制输出 RedirectResult Redirect() 重定向到指定的Url RedirectToRouteResult...如果未找到参数对应的数据,且该参数类型是可以为null的类型,则null将作为参数值传递递,否则将会引发一场。

    2.9K40

    ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

    : Action:Index() 将响应/home/index的请求 Action: Test() 将响应/home/test的请求 Action: DoSomething() 将响应/home/dosomething...{ [NonAction] public void LogicMethod(){ } } 3、控制器操作(Action)返回类型说明 ASP.NET Core MVC 限定...不过在定义Action方法的时候,返回值类型也可以定义成string、int等,这些自定义的返回类型会在返回到响应流之前被框架自动包装到合适的ActionResult子类型中。...返回对象的JSON序列化结果 FileResult File() 返回要写入响应中的二进制输出 RedirectResult Redirect() 重定向到指定的Url RedirectToRouteResult...如果未找到参数对应的数据,且该参数类型是可以为null的类型,则null将作为参数值传递递,否则将会引发一场。

    2.4K10

    为什么ASP.NET Core的路由处理器可以使用一个任意类型的Delegate

    毫不夸张地说,路由是ASP.NET Core最为核心的部分。...二、参数绑定 既然可以将一个任意类型的委托终结点的处理器,意味着路由系统在执行委托的时候能够自行绑定其输入参数。这里采用的参数绑定策略与ASP.NET MVC的“模型绑定”如出一辙。...如果返回类型为String、Task或者ValueTask,返回的字符串将直接作为响应的主体内容,响应的媒体类型会被设置为“text/plain”。...对于其他类型的返回值(包括Task或者ValueTask),默认情况都会序列化成JSON作为响应的主体内容,响应的媒体类型会被设置为“application/json”,即使返回的是原生类型...当Action方法执行结束后,MVC框架会直接调用返回的IActionResult对象的ExecuteResultAsync方法完整最终针对响应的处理。

    31010

    ASP.NET Core基础补充01

    ASP.NET Core是一个跨平台框架。 这意味着它支持在不同类型的操作系统(例如Windows,Linux或Mac)上开发和运行应用程序。...在使用 Kestrel 服务器运行应用程序之前,让我们首先打开应用程序的属性文件夹中的launchSettings.json文件。...一旦 Kestrel Server 处理该请求,然后它将响应发送回反向代理服务器,然后通过 Internet 将响应发送回请求的客户端,如下图所示。...Kestrel Web 服务器处理请求并将响应发送回 IIS Express,而 IIS Express 又将响应发送回客户端,即发送到浏览器。 现在运行应用程序,您将将工作进程视为项目名称。...是否可以在不使用内置Kestrel Web服务器的情况下运行asp.net核心应用程序? 是。

    79710
    领券