• Newtonsoft.Json解析json字符串和写json字符串


    写:

            StringWriter sw = new StringWriter();
            JsonWriter writer = new JsonWriter(sw);
    //如果报错则使用JsonWriter writer = new JsonTextWriter(sw);
            writer.WriteStartArray();
            writer.WriteValue("JSON!");
            writer.WriteValue(1);
            writer.WriteValue(true);
            writer.WriteStartObject();
            writer.WritePropertyName("property");
            writer.WriteValue("value");
            writer.WriteEndObject();
            writer.WriteStartObject();
            writer.WritePropertyName("data");
            writer.WriteValue(_str);
            writer.WriteEndObject();
            writer.WriteEndArray();
            writer.Flush();
            string jsonText = sw.GetStringBuilder().ToString();
            Response.Write(jsonText);    
    View Code


    读: 注意格式;

    string message ={"ObjectId":"fd4169f8-337d-4796-be8c-c35f1075f151","SequenceNo":"0000000791"}   
       var obj = Newtonsoft.Json.Linq.JObject.Parse(message);
    
                if (obj == null)
                {
                    throw new Exception("获取消息失败!");
                }
                var Id = obj["ObjectId"].ToString();
                var DeptNo = obj["SequenceNo"].ToString(); 
    View Code

    使用JObject读写字符串:

    JObject jo = JObject.Parse(jsonText);
    string[] values = jo.Properties().Select(item => item.Value.ToString()).ToArray();

    数组格式解析成二维数组;

        StringBuilder sb = new StringBuilder();
        protected void Page_Load(object sender, EventArgs e)
        {
            string jsontext = "[{ID:'1',Name:'zhangsan',Other:[{Age:'111'}]}]";
            //jsontext数组格式       
             Newtonsoft.Json.Linq.JArray ja = (Newtonsoft.Json.Linq.JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(jsontext);
            foreach (Newtonsoft.Json.Linq.JObject item in ja)
            {
                string aa = item["Name"].ToString();
                Newtonsoft.Json.Linq.JArray ja0 = (Newtonsoft.Json.Linq.JArray)item["Other"];//数组格式
                foreach (Newtonsoft.Json.Linq.JObject item0 in ja0)
                {
                    string bb = item0["Age"].ToString();
                }
            }
        
    View Code
    数组型数据
    
    
    string jsonArrayText1 = "[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]";
     JArray ja = (JArray)JsonConvert.DeserializeObject(jsonArrayText1);
     string ja1a = ja[1]["a"].ToString();
     //或者
    JObject o = (JObject)ja[1];
     string oa = o["a"].ToString();
    
    嵌套格式
    
    string jsonText = "{"beijing":{"zone":"海淀","zone_en":"haidian"}}";
     JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
     string zone = jo["beijing"]["zone"].ToString();
     string zone_en = jo["beijing"]["zone_en"].ToString();
    View Code

     反序列化JSON到给定的匿名对象.

             /// <summary>
            /// 反序列化JSON到给定的匿名对象.
            /// </summary>
            /// <typeparam name="T">匿名对象类型</typeparam>
            /// <param name="json">json字符串</param>
            /// <param name="anonymousTypeObject">匿名对象</param>
            /// <returns>匿名对象</returns>
            public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)
            {
                T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
                return t;
            }
    View Code

    http://www.cnblogs.com/huangcong/p/7048501.html

    http://www.cnblogs.com/songjiali/p/6165281.html

  • 相关阅读:
    usaco-4.1-nuggets-passed
    usaco-3.4-rockers-passed
    usaco-3.4-fence9-passed
    usaco-3.4-heritage-passed
    usaco-3.3-game1-passed
    usaco-3.3-range-passed
    usaco-3.3-camelot-passed
    6.23课堂作业
    初识JVM虚拟机
    JDK安装以及配置环境变量的步骤
  • 原文地址:https://www.cnblogs.com/love201314/p/5085990.html
Copyright © 2020-2023  润新知