.NET 9.0 中 System.Text.Json 的全面使用指南

以下是一些 System.Text.Json 在 .NET 9.0 中的使用方式,包括序列化、反序列化、配置选项等,并附上输出结果。
- 基本序列化和反序列化
using System;
using System.Text.Json;
public class Program
{public class Person{public string Name { get; set; }public int Age { get; set; }}public static void Main(){Person person = new Person { Name = "张三", Age = 30 };// 序列化string jsonString = JsonSerializer.Serialize(person);Console.WriteLine("序列化结果:");Console.WriteLine(jsonString);// 反序列化Person deserializedPerson = JsonSerializer.Deserialize<Person>(jsonString);Console.WriteLine("\n反序列化结果:");Console.WriteLine($"姓名:{deserializedPerson.Name}, 年龄:{deserializedPerson.Age}");}
}
- 输出结果:
序列化结果:
{"Name":"张三","Age":30}
反序列化结果:
姓名:张三, 年龄:30
- 使用配置选项
using System;
using System.Text.Json;
public class Program
{public class Person{public string Name { get; set; }public int Age { get; set; }}public static void Main(){Person person = new Person { Name = "张三", Age = 30 };// 配置选项var options = new JsonSerializerOptions{PropertyNamingPolicy = JsonNamingPolicy.CamelCase,WriteIndented = true};// 序列化string jsonString = JsonSerializer.Serialize(person, options);Console.WriteLine("序列化结果(使用配置选项):");Console.WriteLine(jsonString);}
}
输出结果:
序列化结果(使用配置选项):
{"name": "张三","age": 30
}
- 处理嵌套对象
using System;
using System.Text.Json;
public class Program
{public class Address{public string City { get; set; }public string Street { get; set; }}public class Person{public string Name { get; set; }public int Age { get; set; }public Address Address { get; set; }}public static void Main(){Person person = new Person{Name = "张三",Age = 30,Address = new Address { City = "北京", Street = "长安街" }};string jsonString = JsonSerializer.Serialize(person);Console.WriteLine("序列化结果(嵌套对象):");Console.WriteLine(jsonString);}
}
输出结果:
序列化结果(嵌套对象):
{"Name":"张三","Age":30,"Address":{"City":"北京","Street":"长安街"}}
- 处理集合
using System;
using System.Collections.Generic;
using System.Text.Json;
public class Program
{public class Person{public string Name { get; set; }public int Age { get; set; }}public static void Main(){List<Person> people = new List<Person>{new Person { Name = "张三", Age = 30 },new Person { Name = "李四", Age = 25 }};string jsonString = JsonSerializer.Serialize(people);Console.WriteLine("序列化结果(集合):");Console.WriteLine(jsonString);}
}
输出结果:
序列化结果(集合):
[{"Name":"张三","Age":30},{"Name":"李四","Age":25}]
相关文章:
.NET 9.0 中 System.Text.Json 的全面使用指南
以下是一些 System.Text.Json 在 .NET 9.0 中的使用方式,包括序列化、反序列化、配置选项等,并附上输出结果。 基本序列化和反序列化 using System; using System.Text.Json; public class Program {public class Person{public string Name { get; se…...
Python自动检测requests所获得html文档的编码
使用chardet库自动检测requests所获得html文档的编码 使用requests和BeautifulSoup库获取某个页面带来的乱码问题 使用requests配合BeautifulSoup库,可以轻松地从网页中提取数据。但是,当网页返回的编码格式与Python默认的编码格式不一致时,…...
11.12机器学习_特征工程
四 特征工程 1 特征工程概念 特征工程:就是对特征进行相关的处理 一般使用pandas来进行数据清洗和数据处理、使用sklearn来进行特征工程 特征工程是将任意数据(如文本或图像)转换为可用于机器学习的数字特征,比如:字典特征提取(特征离散化)、文本特征提取、图像特征提取。 …...
RAG经验论文《FACTS About Building Retrieval Augmented Generation-based Chatbots》笔记
《FACTS About Building Retrieval Augmented Generation-based Chatbots》是2024年7月英伟达的团队发表的基于RAG的聊天机器人构建的文章。 这篇论文在待读列表很长时间了,一直没有读,看题目以为FACTS是总结的一些事实经验,阅读过才发现FAC…...
【配置后的基本使用】CMake基础知识
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀各种软件安装与配置_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1.…...
ollama+springboot ai+vue+elementUI整合
1. 下载安装ollama (1) 官网下载地址:https://github.com/ollama/ollama 这里以window版本为主,下载链接为:https://ollama.com/download/OllamaSetup.exe。 安装完毕后,桌面小图标有一个小图标,表示已安装成功&…...
【项目开发】理解SSL延迟:为何HTTPS比HTTP慢?
未经许可,不得转载。 文章目录 前言HTTP与HTTPS的耗时差异TCP握手HTTPS的额外步骤:SSL握手使用curl测量SSL延迟性能与安全的权衡前言 在互联网发展的早期阶段,Netscape公司设计了SSL(Secure Sockets Layer)协议,为网络通信提供加密和安全性。有人曾提出一个大胆的设想:…...
2.STM32之通信接口《精讲》之USART通信
有关通信详解进我主页观看其他文章!【免费】SPIIICUARTRS232/485-详细版_UART、IIC、SPI资源-CSDN文库 通过以上可以看出。根据电频标准,可以分为TTL电平,RS232电平,RS485电平,这些本质上都属于串口通信。有区别的仅是…...
Bootstrap和jQuery开发案例
目录 1. Bootstrap和jQuery简介及优势2. Bootstrap布局与组件示例:创建一个响应式的表单界面 3. jQuery核心操作与事件处理示例:使用jQuery为表单添加交互 4. Python后端实现及案例代码案例 1:用户登录系统Flask后端代码前端代码 5. 设计模式…...
Qt 之 qwt和QCustomplot对比
QWT(Qt Widgets for Technical Applications)和 QCustomPlot 都是用于在 Qt 应用程序中绘制图形和图表的第三方库。它们各有优缺点,适用于不同的场景。 以下是 QWT 和 QCustomPlot 的对比分析: 1. 功能丰富度 QWT 功能丰富&a…...
【STM32】MPU6050简介
文章目录 MPU6050简介MPU6050关键块带有16位ADC和信号调理的三轴MEMS陀螺仪具有16位ADC和信号调理的三轴MEMS加速度计I2C串行通信接口 MPU6050对应的数据手册:MPU6050 陀螺仪加速度计 链接: https://pan.baidu.com/s/13nwEhGvsfxx0euR2hMHsyw?pwdv2i6 提取码: v2i6…...
Oracle 单机及 RAC 环境 归档模式及路径修改
Oracle 数据库的使用过程中经常会根据需求的不同而调整归档模式,也经常会修改归档文件存放路径。 下面分别演示单机及 RAC 环境下修改归档模式及路径的操作步骤。 一、单机环境 1.查询当前归档模式及路径 SQL> archive log list Database log mode …...
抽象java入门1.5.3.1——类的进阶
前言:在研究神技代码Hello word的时候,发现了一个重大公式bug,在代码溯源中,我发现了一个奇怪的东西,就是OUT不是类中类(不是常规类的写法) 内容总结: 代码运行的顺序复习 正片开始…...
python——模块 迭代器 正则
一、python模块 先创建一个 .py 文件,这个文件就称之为 一个模块 Module。 使用模块的优点: 模块化编程,多文件编程 1.2 模块的使用 1.2.1 import语句 想要B.py文件中,使用A.py文件,只需要在B.py文件中使用关键字…...
QT仿QQ聊天项目,第三节,实现聊天界面
一,界面控件示意图 界面主要由按钮QPushButton,标签QLabel,列表QListWidget 要注意的是QListWidget既是实现好友列表的控件,也是实现聊天气泡的控件 二,控件样式 QPushButton#btn_name {border:none;}QPushButton#btn_close {border:1px;bac…...
Linux-何为CentOS
今年公司做的 POC 项目中,越来越多地听到客户开始或已经将系统迁移到麒麟、统信、openEuler,但还是有很多客户在用CentOS 7,或者和CentOS 7兼容的其他Linux。今天把CentOS 7相关概念统一整理下供后续参考使用 何为CentOS CentOS — Communit…...
C++中的 std::optional
std::optional<T>是 C17 中的一个标准库组件,optional <T>对象默认是空的,也就是处于无效状态,给它赋值后因为里面有了元素,就变成了有效状态。 1.引入背景 c函数常用返回值表示函数是否执行成功。如返回nullptr表示…...
猫狗识别之BUG汇总
一、github登不上去问题 下载watt toolkit 下载地址:https://steampp.net/ 可以下载后加速,访问github 二、猫狗总体参考核心 B哥的博客 https://github.com/bubbliiiing/classification-keras?tabreadme-ov-file 三、CSDN很多会员才能阅读问题 根据…...
【论文复现】自动化细胞核分割与特征分析
📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀自动化细胞核分割与特征分析 引言1. 效果展示2. HoverNet概述3. HoverNet原理分析整体网络框架实例分割原理 4. HoverNet评估结果5. 复现过程…...
排序算法 -快速排序
文章目录 1. 快速排序(Quick Sort)1.1、 简介1.2、 快速排序的步骤 2. Hoare 版本2.1、 基本思路1. 分区(Partition)2. 基准选择(Pivot Selection)3. 递归排序(Recursive Sorting) 2…...
勒索病毒突发中招?紧急处置+自救恢复全指南(2026实战版),收藏这篇就够了!
勒索病毒突发中招?紧急处置自救恢复全指南(2026实战版) “文件全被加密,桌面弹出勒索信,要求48小时内支付比特币赎金”——勒索病毒的突发性让无数个人用户和企业猝不及防。一旦中招,核心文件被锁、业务中…...
保姆级教程:造相Z-Image文生图模型v2快速上手,一键生成768高清图
保姆级教程:造相Z-Image文生图模型v2快速上手,一键生成768高清图 1. 为什么选择造相Z-Image模型? 造相Z-Image是阿里通义万相团队开源的高性能文生图扩散模型,拥有20亿级参数规模。相比市面上常见的512512分辨率模型,…...
OpenClaw+GLM-4.7-Flash实战:个人自动化办公助手搭建指南
OpenClawGLM-4.7-Flash实战:个人自动化办公助手搭建指南 1. 为什么选择本地AI办公助手 去年夏天,我发现自己每天要花3小时处理重复性办公任务:整理邮件、归档文档、撰写会议纪要。当我尝试用传统RPA工具时,发现它们要么太死板&a…...
VSCode + Clang-Format 真·无缝集成指南:不止是保存时格式化
VSCode Clang-Format 真无缝集成指南:不止是保存时格式化 在C/C开发中,代码风格一致性往往成为团队协作的痛点。当你在深夜提交代码时,是否曾被同事提醒"缩进不对"或"括号换行风格不一致"?Clang-Format作为L…...
动态代理·学习笔记
“嗨,阿米戈。” “你好,瑞希。” “今天我将向您解释一个非常有趣的新话题:动态代理”。 “Java 有几种方法可以改变特定类的功能……” “第一个方法,传承。” “更改类行为的最简单方法是创建一个继承原始(基)类的新类,并覆盖其方法。然后,使用派生类而不是原始…...
COMSOL 多物理场建模:热流固耦合与压缩空气
comsol多物理场: 热流固耦合 压缩空气 应力场 温度场 渗流场在现代工程设计中,多物理场问题越来越常见,尤其是在涉及热、流体、结构等相互作用的复杂系统中。本文将介绍如何利用 COMSOL 多物理场建模工具来解决一个典型的热流固耦合问题——压…...
Confluence新手必看:5个高效编辑技巧让你秒变Wiki达人(含插件推荐)
Confluence新手必看:5个高效编辑技巧让你秒变Wiki达人(含插件推荐) 刚接触Confluence时,面对这个功能强大的企业Wiki平台,新手往往会感到无从下手。本文将分享5个经过实战验证的高效编辑技巧,帮助你快速掌…...
FPGA设计实战:如何用IBUFDS_IBUFDISABLE原语给你的差分输入省电(附Vivado 2023.1配置)
FPGA低功耗设计实战:IBUFDS_IBUFDISABLE原语在差分信号中的节能应用 在高速数字系统设计中,差分信号因其优异的抗干扰能力和噪声抑制特性,已成为LVDS、HDMI等接口的标准配置。然而,差分输入缓冲器带来的额外功耗往往被工程师忽视—…...
AI辅助配置:让快马平台智能生成最优化的openclaw安装与调试方案
AI辅助配置:让快马平台智能生成最优化的openclaw安装与调试方案 最近在做一个机器人抓取项目,需要安装和配置openclaw模块。作为一个刚接触机器人控制的新手,面对复杂的依赖关系和参数调试,一开始真是有点无从下手。好在发现了In…...
包含多体型模板的AI虚拟智能试衣系统源码
温馨提示:文末有资源获取方式在电商竞争日益白热化的今天,商品展示图的质量直接决定了点击率与转化率。对于服装类目而言,传统模特拍摄不仅面临模特、摄影、场地的高昂成本,更受限于漫长的拍摄周期。为了解决这一行业痛点…...
