一、Asp.Net Core中的Json序列化处理使用的是Newtonsoft.Json,更多参考:C# Newtonsoft.Json JsonSerializerSettings配置序列化操作C# Json序列化工具--Newtonsoft.Json简介和使用

1.Newtonsoft.Json仅 依赖.Net Standard所以支持.Net Framework也支持.Net Core

2.更多说明

/*
* 1.在Core Mvc中JsonResult 默认支持Get请求
* 2.使用JQuery的ajax请求,返回json数据自动转换成 object对象
* 3.在 Core Mvc的 后台JsonResult序列化的时候,默认情况下自动 处理 的命名规则,改成了 js的驼峰格式
* 4.在 Core Mvc中json 的序列化发序列化使用的是Newtonsoft.Json库
* 5.默认没有处理循环引用的问题
*/

二、使用实例

Jquery 的ajax get请求

$('#btnOne').click(function () {
//使用ajax get请求json 数据
$.get('@Url.Action("DataOne")', {}, function (data) {
console.info(data);
console.info(data[0].menuName);
});
});

1.默认情况,使用驼峰样式处理字段名Key

public JsonResult DataThree()
{
//Ef Core现在 不支持延迟加载,对于关联表数据都为null
List<Menu> menus = _context.Menu
.ToList();
return Json(menus);
}

2.设置不使用驼峰格式处理,由后台字段确定大小写,也就是默认格式

public JsonResult DataOne()
{
List<Menu> menus = _context.Menu.ToList();
JsonSerializerSettings settings = new JsonSerializerSettings();
//EF Core中默认为驼峰样式序列化处理key
//settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
//使用默认方式,不更改元数据的key的大小写
settings.ContractResolver = new DefaultContractResolver(); return Json(menus, settings);
}

3.处理循环引用,加载关联表数据、

public JsonResult DataTwo()
{
List<Menu> menus = _context.Menu
.Include(q => q.Model)
.ToList();
//处理循环引用问题
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.MaxDepth = ;
settings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; //设置不处理循环引用
return Json(menus, settings);
}

三、全局设置,Json序列化配置

IMvcBuilder依赖注入扩展了MvcJsonMvcBuilderExtensions配置

定义如下 :

    //
// 摘要:
// Extensions methods for configuring MVC via an Microsoft.Extensions.DependencyInjection.IMvcBuilder.
public static class MvcJsonMvcBuilderExtensions
{
//
// 摘要:
// Adds configuration of Microsoft.AspNetCore.Mvc.MvcJsonOptions for the application.
//
// 参数:
// builder:
// The Microsoft.Extensions.DependencyInjection.IMvcBuilder.
//
// setupAction:
// The Microsoft.AspNetCore.Mvc.MvcJsonOptions which need to be configured.
public static IMvcBuilder AddJsonOptions(this IMvcBuilder builder, Action<MvcJsonOptions> setupAction);
}

MvcJsonOptions:

    //
// 摘要:
// Provides programmatic configuration for JSON in the MVC framework.
public class MvcJsonOptions
{
public MvcJsonOptions(); //
// 摘要:
// Gets the Newtonsoft.Json.JsonSerializerSettings that are used by this application.
public JsonSerializerSettings SerializerSettings { get; }
}

在Startup文件中修改

// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc()
//全局配置Json序列化处理
.AddJsonOptions(options =>
{
//忽略循环引用
options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
//不使用驼峰样式的key
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
//设置时间格式
options.SerializerSettings.DateFormatString = "yyyy-MM-dd";
}
);
}

更多:

.NetCore中EFCore的使用整理(二)-关联表查询

Asp.Net Core MVC控制器和视图之间传值

.NetCore中EFCore的使用整理

Asp.Net Core中Json序列化处理整理的更多相关文章

  1. ASP.NET Core中返回 json 数据首字母大小写问题

    ASP.NET Core中返回 json 数据首字母大小写问题 在asp.net core中使用ajax请求动态绑定数据时遇到该问题 后台返回数据字段首字母为定义的大写,返回的数据没有问题 但是在前台 ...

  2. ASP.NET Core 在 JSON 文件中配置依赖注入

    前言 在上一篇文章中写了如何在MVC中配置全局路由前缀,今天给大家介绍一下如何在在 json 文件中配置依赖注入. 在以前的 ASP.NET 4+ (MVC,Web Api,Owin,SingalR等 ...

  3. 如何在ASP.NET Core中使用JSON Patch

    原文: JSON Patch With ASP.NET Core 作者:.NET Core Tutorials 译文:如何在ASP.NET Core中使用JSON Patch 地址:https://w ...

  4. [08]ASP.NET Core 中 launchsettings.json 启动配置文件

    ASP.NET Core launchsettings.json 启动配置文件 本文作者:梁桐铭- 微软最有价值专家(Microsoft MVP) 文章会随着版本进行更新,关注我获取最新版本 本文出自 ...

  5. 转载:ASP.NET Core 在 JSON 文件中配置依赖注入

    在以前的 ASP.NET 4+ (MVC,Web Api,Owin,SingalR等)时候,都是提供了专有的接口以供使用第三方的依赖注入组件,比如我们常用的会使用 Autofac.Untiy.Stri ...

  6. ASP.NET Core 中文文档 第三章 原理(13)管理应用程序状态

    原文:Managing Application State 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:高嵩 在 ASP.NET Core 中,有多种途径可以对应用程序的状态进行 ...

  7. 在ASP.NET Core 中使用Cookie中间件

    在ASP.NET Core 中使用Cookie中间件 ASP.NET Core 提供了Cookie中间件来序列化用户主题到一个加密的Cookie中并且在后来的请求中校验这个Cookie,再现用户并且分 ...

  8. ASP.NET Core中使用自定义MVC过滤器属性的依赖注入

    除了将自己的中间件添加到ASP.NET MVC Core应用程序管道之外,您还可以使用自定义MVC过滤器属性来控制响应,并有选择地将它们应用于整个控制器或控制器操作. ASP.NET Core中常用的 ...

  9. 如何简单的在 ASP.NET Core 中集成 JWT 认证?

    前情提要:ASP.NET Core 使用 JWT 搭建分布式无状态身份验证系统 文章超长预警(1万字以上),不想看全部实现过程的同学可以直接跳转到末尾查看成果或者一键安装相关的 nuget 包 自上一 ...

随机推荐

  1. cf932d 树上倍增

    题解链接 https://blog.csdn.net/my_sunshine26/article/details/79338601 感觉能做,但是倍增还不是很熟悉,回头再补

  2. python 全栈开发,Day18(对象之间的交互,类命名空间与对象,实例的命名空间,类的组合用法)

    一.对象之间的交互 现在我们已经有一个人类了,通过给人类一些具体的属性我们就可以拿到一个实实在在的人.现在我们要再创建一个狗类,狗就不能打人了,只能咬人,所以我们给狗一个bite方法.有了狗类,我们还 ...

  3. equals&&==的使用

    package stringyiwen; /* * ==:比较运算符,在基本数据类型比较的是值* ==:引用数据类型比较的是地址值 *//* * equals方法:[只]用于[引用数据数据类型],如果 ...

  4. JavaScrit全面总结

    前端技术的发展变化太快了,各种各样的框架.再变也离不开js.所以,在此把js的高级语法总结一遍.    js解析和执行包括:全局和函数 一:全局预处理 <script type="te ...

  5. php手动搭建wamp环境(一)--之 Windows系统下PHP环境搭建

    1.PHP环境搭建的前提是 Apache HTTP Server (Apache 服务器)已经安装部署成功,并可以正常访问到服务器的主页面.Apache HTTP Server 的安装部署已经在上一篇 ...

  6. [转] 深入理解React 组件状态(State)

    React 的核心思想是组件化的思想,应用由组件搭建而成,而组件中最重要的概念是State(状态),State是一个组件的UI数据模型,是组件渲染时的数据依据. 一. 如何定义State 定义一个合适 ...

  7. [APIO2011]方格染色

    题解: 挺不错的一道题目 首先4个里面只有1个1或者3个1 那么有一个特性就是4个数xor为1 为什么要用xor呢? 在于xor能把相同的数消去 然后用一般的套路 看看确定哪些值能确定全部 yy一下就 ...

  8. P3763 [TJOI2017]DNA

    链接:https://www.luogu.org/problemnew/show/P3763 题解: 挺水的一题后缀数组 枚举每一个开头用后缀数组判断能否在3次内匹配完

  9. Codeforces 1114F Please, another Queries on Array? 线段树

    Please, another Queries on Array? 利用欧拉函数的计算方法, 用线段树搞一搞就好啦. #include<bits/stdc++.h> #define LL ...

  10. HDU1711 Number Sequence KMP

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - HDU1711 题意概括 给T组数据,每组有长度为n和m的母串和模式串.判断模式串是否是母串的子串,如果是输出 ...