NewTonJson.Net的使用


1.引用“Newtonsoft.Json” 4.0 版本

2.基礎類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NewTonJsonTest
{
   public class Animal
    {

       public string nickname { get; set; }
       public int age { get; set; }
    }
}
View Code

3.JsonHelper 輔助類

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using Newtonsoft.Json;
namespace NewTonJsonTest
{
    /// <summary>
    /// Json幫助類
    /// </summary>
    public class JsonHelper
    {
        /// <summary>
        /// 將對象序列化為JSON格式
        /// </summary>
        /// <param name="o">對象</param>
        /// <returns>json字符串</returns>
        public static string SerializeObject(object o)
        {
            string json = JsonConvert.SerializeObject(o);
            return json;
        }

        /// <summary>
        /// 解析JSON字符串生成對象實體
        /// </summary>
        /// <typeparam name="T">對象類型</typeparam>
        /// <param name="json">json字符串(eg.{"ID":"112","Name":"石子兒"})</param>
        /// <returns>對象實體</returns>
        public static T DeserializeJsonToObject<T>(string json) where T : class
        {
            JsonSerializer serializer = new JsonSerializer();
            StringReader sr = new StringReader(json);
            object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
            T t = o as T;
            return t;
        }

        /// <summary>
        /// 解析JSON數組生成對象實體集合
        /// </summary>
        /// <typeparam name="T">對象類型</typeparam>
        /// <param name="json">json數組字符串(eg.[{"ID":"112","Name":"石子兒"}])</param>
        /// <returns>對象實體集合</returns>
        public static List<T> DeserializeJsonToList<T>(string json) where T : class
        {
            JsonSerializer serializer = new JsonSerializer();
            StringReader sr = new StringReader(json);
            object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));
            List<T> list = o as List<T>;
            return list;
        }

        /// <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

 

4.測試代碼

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NewTonJsonTest
{
    class Program
    {
        static void Main(string[] args)
        {
            //將對象序列化為json字符串
            Animal a = new Animal();
            a.nickname = "xiaoxiao";
            a.age = 10;

            string s = JsonHelper.SerializeObject(a);
            Console.WriteLine(s);
          

            //將json字符串反序列化為list<T>
            string json = "[{\"nickname\":\"石子兒\",\"age\":\"110\"}]";

            var list = JsonHelper.DeserializeJsonToList<Animal>(json);
            Console.WriteLine(list[0].nickname+"cc");

            //將json 字符串序列化為對象

            string jsonobj = "{\"nickname\":\"石子兒obj\",\"age\":\"110\"}";
            var obj = JsonHelper.DeserializeJsonToObject<Animal>(jsonobj);
            Console.WriteLine(obj.nickname);

            //將json 字符串轉換成匿名對象
            var tempEntity = new { nickname =string.Empty, age =10};
            string jsonany = "{\"nickname\":\"石子兒any\",\"age\":\"110\"}";
            var objany = JsonHelper.DeserializeAnonymousType(jsonany,tempEntity);
            Console.WriteLine(objany.nickname);
            Console.ReadLine();
        }
    }
}
View Code

 

源碼下載


免責聲明!

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



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