当前位置:网站首页>【原创】使用System.Text.Json对Json字符串进行格式化
【原创】使用System.Text.Json对Json字符串进行格式化
2022-04-23 08:46:00 【赵庆明老师】
Newtonsoft.Json虽然使用广泛,功能强大,但在.NET Core中需要导入。
而System.Text.Json属于微软.NET Core中官方的包,相比于Newtonsoft.Json包来说,是一个精简的包。
尤其是Newtonsoft.Json作者加入微软之后,微软官方包的运行效率已经远远超越Newtonsoft.Json包。
因此,在开发中,尽可能来使用System.Text.Json,必经这玩意是微软的亲儿子。
在对一个JSON字符串进行格式化的时候,使用System.Text.Json也很简单,但要注意编码的问题。
如下所示,对一个JSON字符串进行了一个简单的格式化。
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;
string a = "{\"code\":10000,\"message\":\"ok\",\"description\":\"api请求成功\",\"uuid\":\"792915a539b84391a868bdf34ace4269\",\"result\":{\"page\":1,\"per\":10,\"total\":1,\"max_page\":1,\"data_struct\":{\"ID\":\"主键ID\",\"KZT\":\"卡状态(1正常,其他非正常)\",\"YKTKH\":\"一卡通卡号\",\"KWLH\":\"卡物理号\",\"XM\":\"姓名\",\"BH\":\"编号(学号或教工号)\",\"YKTZHLXM\":\"一卡通账户类型码\",\"GQRQ\":\"过期日期\",\"XGSJ\":\"修改时间\",\"TSTAMP\":\"时间戳\",\"DWDM\":\"单位代码\",\"DWMC\":\"单位名称\",\"SFZJH\":\"身份证号码\",\"LSDWH\":\"隶属单位号\",\"DWLBM\":\"单位类别码\",\"DWLBMC\":\"单位类别名称\",\"XBM\":\"性别码\",\"DQZT\":\"人员当前状态\",\"BJM\":\"班级码\"}}}";
var jsonDocument =JsonDocument.Parse(a);
var formatJson = JsonSerializer.Serialize(jsonDocument, new JsonSerializerOptions()
{
// 整齐打印
WriteIndented = true,
//重新编码,解决中文乱码问题
Encoder = JavaScriptEncoder.Create(UnicodeRanges.All)
});
// 格式化输出
Console.WriteLine(formatJson);
输出结果如下,已完成了格式化:
{
"code": 10000,
"message": "ok",
"description": "api请求成功",
"uuid": "792915a539b84391a868bdf34ace4269",
"result": {
"page": 1,
"per": 10,
"total": 1,
"max_page": 1,
"data_struct": {
"ID": "主键ID",
"KZT": "卡状态(1正常,其他非正常)",
"YKTKH": "一卡通卡号",
"KWLH": "卡物理号",
"XM": "姓名",
"BH": "编号(学号或教工号)",
"YKTZHLXM": "一卡通账户类型码",
"GQRQ": "过期日期",
"XGSJ": "修改时间",
"TSTAMP": "时间戳",
"DWDM": "单位代码",
"DWMC": "单位名称",
"SFZJH": "身份证号码",
"LSDWH": "隶属单位号",
"DWLBM": "单位类别码",
"DWLBMC": "单位类别名称",
"XBM": "性别码",
"DQZT": "人员当前状态",
"BJM": "班级码"
}
}
}
版权声明
本文为[赵庆明老师]所创,转载请带上原文链接,感谢
https://blog.csdn.net/u013667796/article/details/124338465
边栏推荐
- 面了一圈,整理了这套面试题。。
- xctf刷题小记
- LINQ Learning Series ----- 1.4 anonymous objects
- 完全二叉搜索树 (30 分)
- Harbor企业级镜像管理系统实战
- JVM工具之Arthas使用
- okcc呼叫中心外呼系统智能系统需要用多大的盘存录音?
- Detailed description of self feeling of auricular point weight loss 0422
- Stm32f103zet6 [development of standard library functions] - Introduction to library functions
- ONEFLOW learning notes: from functor to opexprinter
猜你喜欢
随机推荐
在sqli-liabs学习SQL注入之旅(第十一关~第二十关)
Failed to prepare device for development
Idea import commons-logging-1.2 Jar package
flask项目跨域拦截处理以及dbm数据库学习【包头文创网站开发】
增强现实技术是什么?能用在哪些地方?
Kubernetes如何使用harbor拉去私有镜像
Play with binary tree (25 points)
swagger文档导出自定义v2/api-docs拦截
1099 establish binary search tree (30 points)
四张图弄懂matplotlib的一些基本用法
Judgment on heap (25 points) two insertion methods
2021李宏毅机器学习之Adaptive Learning Rate
LeetCode396.旋转数组
是否完全二叉搜索树 (30 分)
Basic usage of synchronized locks
扣缴义务人
Large amount of data submitted by form post
LaTeX数学公式
Trust uses Tokio's notify and timeout to achieve the effect similar to the timeout condition variable
虚拟线上展会-线上vr展馆实现24h沉浸式看展