C#: Newtonsoft.Json库
参考资料
Newtonsoft.Json库简介功能:
JSON与.NET对象相互转换
LINQ to JSON查询
高性能JSON读写
支持XML与JSON互转
支持BSON格式
核心类及功能:
JsonConvert:静态工具类,提供主要序列化方法
JsonSerializer:可配置的序列化器实例
JsonReader/JsonWriter:底层读写器
JObject/JArray:LINQ可查询的JSON对象
主要属性参数说明:
JsonSerializerSettings配置:
Formatting:缩进格式(None/Indented)
NullValueHandling:空值处理方式
DefaultValueHandling:默认值处理方式
ReferenceLoopHandling:循环引用处理
ContractResolver:自定义契约解析器
JsonConvert方法参数:
TypeNameHandling:类型信息处理
PreserveReferencesHandling:对象引用保留
基本使用方法:
序列化对象:
string json = JsonConvert.SerializeObject(obj);
反序列化:
var obj = JsonConvert.DeserializeObject<T>(json);
使用配置:
var settings = new JsonSerializerSettings {
Formatting = Formatting.Indented,
NullValueHandling = NullValueHandling.Ignore
};
string json = JsonConvert.SerializeObject(obj, settings);LINQ to JSON:
JObject jObj = JObject.Parse(json); string name = (string)jObj["name"];
安装方法:
通过NuGet包管理器安装:
Install-Package Newtonsoft.Json
示例解析:
基础序列化:
public class Person {
public string Name { get; set; }
public int Age { get; set; }
}
var person = new Person { Name = "John", Age = 30 };
string json = JsonConvert.SerializeObject(person);
// 输出:{"Name":"John","Age":30}复杂对象处理:
var settings = new JsonSerializerSettings {
Formatting = Formatting.Indented,
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
};
var obj = new {
Date = DateTime.Now,
Items = new List<string> { "item1", "item2" }
};
string json = JsonConvert.SerializeObject(obj, settings);动态对象处理:
dynamic obj = new JObject(); obj.Name = "John"; obj.Age = 30; string json = obj.ToString();
本文来自《西里网 . 编程语言》 -- 发布时间:2025-03-29
本页链接:https://dev.ciilii.com/show/news-1133.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
