• 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

  • 相关阅读:
    6.1(续)索引、索引组织表--Oracle模式对象
    Docker容器中用户权限管理
    setfacl、getfacl
    Premiere常见配置优化
    SSH代理
    给U盘分区
    IO模型
    window 系统各个版本 ie浏览器 默认版本 bootstrap ie版本兼容
    代码多版本处理及自动化打包部署流程
    vue3 watch 监听数组 对象
  • 原文地址:https://www.cnblogs.com/sundh1981/p/13179525.html
Copyright © 2020-2023  润新知