ASP.NET Core Web API设置响应输出的Json数据格式的两种方式

简介: ASP.NET Core Web API设置响应输出的Json数据格式的两种方式

前言

在ASP.NET Core Web API中设置响应输出Json数据格式有两种方式,可以通过添加System.Text.JsonNewtonsoft.JsonJSON序列化和反序列化库在应用程序中全局设置接口响应的Json数据格式,本文示例使用的是新的Minimal API模式。

JSON序列化和反序列化库

System.Text.Json

System.Text.Json是 .NET Core 3.0 及以上版本中内置的 JSON 序列化和反序列化库。

Newtonsoft.Json

Newtonsoft.Json是一个功能强大且灵活的.NET JSON序列化和反序列化库,用于在.NET应用程序中处理JSON数据。

需求设置统一格式

  1. 修改属性名称的序列化方式,在.Net Core中默认使用小驼峰序列化Json属性参数,前端想要使用与后端模型本身命名格式输出(如:UserName)。
  2. 日期类型默认格式化处理,设置为:yyyy-MM-dd HH:mm:ss。

未配置之前的API输出Json数据

UserInfoModel

public class UserInfoModel
    {
        public DateTime DateTime { get; set; }
        public int NumberIndex { get; set; }
        public string UserName { get; set; }
    }

UserInfoController

[ApiController]
    [Route("[controller]")]
    public class UserInfoController : ControllerBase
    {
        private static readonly string[] NameList = new[] { "追逐时光者", "小明同学", "DotNetGuide", "小艺同学", "Edwin" };
        [HttpGet(Name = "GetUserInfo")]
        public IEnumerable<UserInfoModel> Get()
        {
            return Enumerable.Range(1, 5).Select(index => new UserInfoModel
            {
                DateTime = DateTime.Now.AddDays(index),
                NumberIndex = Random.Shared.Next(-20, 55),
                UserName = NameList[Random.Shared.Next(NameList.Length)]
            }).ToArray();
        }
    }

输出Json数据

System.Text.Json程序全局配置

添加自定义时间输出格式类(DateTimeJsonConverter)

public class DateTimeJsonConverter : JsonConverter<DateTime>
    {
        public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
            return DateTime.Parse(reader.GetString());
        }
        public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
        {
            writer.WriteStringValue(value.ToString("yyyy-MM-dd HH:mm:ss"));
        }
    }

在Program.cs中全局配置

builder.Services.AddControllers().AddJsonOptions(options =>
            {
                //命名规则,该值指定用于将对象上的属性名称转换为另一种格式(例如驼峰大小写)或为空以保持属性名称不变的策略[前端想要使用与后端模型本身命名格式输出]。
                options.JsonSerializerOptions.PropertyNamingPolicy = null;
                //自定义输出的时间格式
                options.JsonSerializerOptions.Converters.Add(new DateTimeJsonConverter());
            });

配置后输出的Json数据

Newtonsoft.Json程序全局配置

说明

在.NET 3.0及其以上的版本使用Newtonsoft.Json需要通过安装 Microsoft.AspNetCore.Mvc.NewtonsoftJson 包来进行配置(注意假如提示该包安装失败可以尝试安装其他版本的包)。

在Program.cs中全局配置

builder.Services.AddControllers().AddNewtonsoftJson(options =>
            {
                //修改属性名称的序列化方式[前端想要使用与后端模型本身命名格式输出]
                options.SerializerSettings.ContractResolver = null;
                //方式1:日期类型默认格式化处理 
                options.SerializerSettings.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });
                //方式2:日期类型默认格式化处理 
                //options.SerializerSettings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
                //options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
            });

配置后输出的Json数据

参考文章

相关文章
|
4月前
|
JSON 监控 API
掌握使用 requests 库发送各种 HTTP 请求和处理 API 响应
本课程全面讲解了使用 Python 的 requests 库进行 API 请求与响应处理,内容涵盖环境搭建、GET 与 POST 请求、参数传递、错误处理、请求头设置及实战项目开发。通过实例教学,学员可掌握基础到高级技巧,并完成天气查询应用等实际项目,适合初学者快速上手网络编程与 API 调用。
525 130
|
5月前
|
JSON API 数据格式
1688店铺订单列表订单详情订单物流API响应数据解析
1688平台作为阿里巴巴旗下的B2B电商利器,提供高效订单管理API,支持订单查询、状态变更与物流同步,助力企业提升运营效率。本文附Python请求示例代码,实现便捷对接与数据获取。
|
5月前
|
JSON API 数据格式
天猫商品评论API响应数据解析
天猫商品评论API是淘宝开放平台提供的数据接口,支持获取评论内容、评分、时间等信息,具备筛选、分页功能,适用于电商数据分析与用户行为研究。
|
5月前
|
JSON 监控 API
天猫商品详情API响应数据解析
天猫商品详情API是天猫开放平台的核心接口,通过商品ID可获取标题、价格、图片、库存等详细信息,广泛应用于价格监控、竞品分析等场景。支持HTTP请求,返回JSON格式数据,Python示例代码展示了如何高效调用该接口获取商品数据。
|
5月前
|
JSON API 数据格式
淘宝商品评论API响应数据解析
淘宝商品评论API是淘宝开放平台的重要接口,支持获取商品用户评价信息,助力电商数据分析与商品优化。提供分页查询、评分筛选、时间过滤等功能,数据格式为JSON,适用于Python等语言调用,便于开发者灵活集成。
|
5月前
|
JSON API 数据格式
小红书笔记详情API响应数据解析
小红书笔记详情API可获取笔记核心数据,适用于内容分析与竞品监测。支持HTTP GET/POST请求,返回JSON格式数据,包含笔记标题、互动数据及作者信息。文档提供Python请求示例,建议添加异常重试机制,助力品牌营销与用户行为分析。
|
5月前
|
数据采集 JSON 监控
值得买商品详情API响应数据解析
“什么值得买”商品详情API支持获取商品标题、价格、促销信息等核心数据,适用于价格监控与优惠分析。提供商品基础信息、实时价格、评价数据及库存状态监控,助力电商数据采集与分析。
|
6月前
|
数据采集 JSON API
1688商品详情API响应数据解析
1688商品详情API支持获取商品基础信息、价格、库存、图片及商家数据,适用于选品分析与市场研究。提供标准化JSON数据格式,提升电商数据采集效率。需配置商品ID等参数,示例代码展示Python调用方式。
|
4月前
|
存储 JSON 监控
亚马逊:调用促销管理API设置跨店满赠,提升客单价
本文介绍了如何通过亚马逊SP-API实现跨店满赠促销,提升卖家客单价。内容涵盖概念、优势、API调用步骤及代码示例,助力自动化高效促销部署。
249 0
|
5月前
|
JSON 监控 BI
京东店铺所有商品API响应数据解析
京东店铺商品API由京东开放平台提供,可获取指定店铺的商品基础信息、价格、库存及销量等数据,适用于商品管理、竞品分析、价格监控等场景。支持HTTPS请求、JSON格式返回,提供Python示例,便于第三方系统集成与数据应用。