zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【Jquery】根据元素个数给予宽度
    【Jquery】判断宽度跳转
    【CSS】滚动条样式
    关于vue在列表展示数据的时候,选择更改其中一项,数据跟着实时变动的问题
    JAVA基础知识
    华为机试 字符串分隔
    华为机试 计算字符个数
    华为机试 字符串最后一个单词的长度
    简单构造 Ext.tree 树例子
    Ext.form.Label组件动态设置html值
  • 原文地址:https://www.cnblogs.com/sundh1981/p/13179525.html
Copyright © 2011-2022 走看看