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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM