NewtonSoft JSON For Net
1.JSONConvert 序列化与反序列化
string js=JSONConvert.SerialObject(object obj) 对象序列化成JSON格式字符串
例子:string js=JSONConvert.SerailObject(new{Name="zhangsan",Age=22});
结果: {"Name":"zhangsan","Age":22};
反序列化:
T obj=JSONConvert.DeserializeObject<T>(@"{ 'Name':'zhangsan','Age':22}")
textBox1.Text=obj.Name;
// zhangsan
2.JSON.Linq
public static JObject JObject.Parse(string json)
JObject jo=JObject.Parse(string jsonString);
例子:
JObject jo = JObject.Parse(@"{'Name':'sundh','Age':25}");
textBox1.AppendText(jo["Name"].ToString());
结果:sundh
JArray ja=JArray.Parse(@"['aa','bb','cc']");
textBox1.Text=ja.ToString();
//结果:["aa","bb","cc"]
2.1 SelectToken(string item)
JObject jo = JObject.Parse(@"{'Student':{'Name':'zhangsan','Age':'15'},'Score':{'YuWen':89,'ShuXue':67,'YingYu':95}}");
JObject jStudent = jo.SelectToken("Student") as JObject; //方法1 返回值为JToken
JObject js = jo["Student"] as JObject; //方法2 返回值为:JToken 因此需要转换
textBox1.Text = jStudent.ToString();
textBox1.Text += js;
//结果:
{
"Name": "zhangsan",
"Age": "15"
}{
"Name": "zhangsan",
"Age": "15"
}
public void Add(string propertyName,JToken value)
JObject jo = JObject.Parse(@"{'Student':{'Name':'zhangsan','Age':'15'},'Score':{'YuWen':89,'ShuXue':67,'YingYu':95}}");
JObject jStudent = jo.SelectToken("Student") as JObject;
JObject js = jo["Student"] as JObject;
js.Add("ls", jo);
//结果
{
"Name": "zhangsan",
"Age": "15",
"ls": {
"Student": {
"Name": "zhangsan",
"Age": "15"
},
"Score": {
"YuWen": 89,
"ShuXue": 67,
"YingYu": 95
}
}
}
public abstract class JToken : IJEnumerable<JToken>,
IEnumerable<JToken>, IEnumerable, IJsonLineInfo, ICloneable,
IDynamicMetaObjectProvider
public class JObject : JContainer, IDictionary<string, JToken>,
ICollection<KeyValuePair<string, JToken>>, IEnumerable<KeyValuePair<string, JToken>>,
IEnumerable, INotifyPropertyChanged, ICustomTypeDescriptor, INotifyPropertyChanging
public class JArray : JContainer, IList<JToken>,
ICollection<JToken>, IEnumerable<JToken>, IEnumerable
public class JValue : JToken, IEquatable<JValue>,
IFormattable, IComparable, IComparable<JValue>, IConvertible
根据定义可知JToken,对共享元素的一种抽象,即它抽象了JObject元素。
API Document:https://www.newtonsoft.com/json/help/html/N_Newtonsoft_Json_Linq.htm
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!