推荐使用System.Text.Json读取JSON文件和解析字符串:读取文件用File.ReadAllText+JsonSerializer.Deserialize;解析字符串同理,或用JsonDocument提取字段;Newtonsoft.Json兼容性好但性能较低。

在C#中读取JSON文件和解析JSON字符串,最常用、推荐的方式是使用 System.Text.Json(.NET Core 3.0+ 和 .NET 5+ 内置)或 Newtonsoft.Json(即 Json.NET,兼容性更广)。下面分两种常见场景说明,重点讲清怎么做、注意什么。
读取本地JSON文件并反序列化为对象
假设你有一个 config.json 文件,内容如下:
{
"name": "张三",
"age": 28,
"isActive": true
}登录后复制
对应定义一个 C# 类:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public bool IsActive { get; set; }
}登录后复制
用 System.Text.Json 读取并解析:
using System.Text.Json;
<p>string json = File.ReadAllText("config.json");
Person person = JsonSerializer.Deserialize<Person>(json);登录后复制
✅ 小提示:
- 属性名默认按 PascalCase 匹配 JSON 中的 camelCase 字段(如
Name↔"name"),无需额外配置 - 如果 JSON 字段名和类属性不一致,可用
[JsonPropertyName("xxx")]特性标注 - 文件路径不存在会抛出
FileNotFoundException,建议加 try-catch 或先判断File.Exists()
解析JSON字符串(非文件)
比如从 API 接口拿到一段 JSON 字符串:
string jsonString = @"{""id"":123,""title"":""Hello World""}";登录后复制
同样用 JsonSerializer.Deserialize<t>()</t> 即可:
var obj = JsonSerializer.Deserialize<MyModel>(jsonString);
登录后复制
如果只是临时提取个别字段,不想定义完整类,可以用 JsonDocument 或 JsonElement:
标签: js json 编码 工具 中文乱码 常见问题 c# 内存占用 .net red
还木有评论哦,快来抢沙发吧~