zoukankan      html  css  js  c++  java
  • C# 使用Newtonsoft.Json序列化自定义类型

    Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。

    让你轻松实现.Net中所有类型(对象,基本数据类型等)和Json的转换.
    官网上三种不同的组件性能对比
    /******************************************************************
     * 创建人:HTL
     * 创建时间:2015-04-08 15:36:35
     * 说明:C# 使用Newtonsoft.Json序列化和反序列化自定义类型
     * Json.Net版本:6.0.0.0
     * 需要导入Newtonsoft.Json组件
     * DEMO Url:http://ideone.com/I6MuaZ
     * Email:huangyuan413026@163.com
     *******************************************************************/
    using System;
    using Newtonsoft.Json;
    using System.Collections.Generic;
    namespace NewtonsoftJsonTest
    {
        //自定义类型
        public class User
        {
            public string name { get; set; }
            public string age { get; set; }
            public override string ToString()
            {
                if (string.IsNullOrEmpty(name) && string.IsNullOrEmpty(age)) return string.Empty;
    
                return string.Format("age:{0},name:{1}", this.age, this.name);
            }
        }
        class Program
        {
            public static void Main(string[] args)
            {
                User p = null;
    
                #region//将字符串反序列化成自定义类型
                try
                {
                    p = JsonConvert.DeserializeObject<User>("{ "age":"10" , "name":"HTL" }");
                    //User p =(User)JsonConvert.DeserializeObject("{ "age":"10" , "name":"HTL" }",typeof(User));
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                Console.WriteLine("将字符串反序列化成自定义类型结果");
                Console.WriteLine((p ?? new User()).ToString());//输出:"age:10,name:HTL"
                p = null;
                #endregion
    
                Console.WriteLine(Environment.NewLine);
    
                #region//将自定义类型序列化成字符串
                p = new User
                {
                    age = "20"
                    ,
                    name = "HTL"
                };
                string s = string.Empty;
                try
                {
                    s = JsonConvert.SerializeObject(p);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
                finally
                {
                    p = null;
                }
                Console.WriteLine("将自定义类型序列化成字符串结果:");
                Console.WriteLine(s ?? string.Empty); //输出:"{"name":"HTL","age":"20"}"
                s = string.Empty;
                #endregion
                Console.ReadLine();
            }
        }
    }
    View Code





  • 相关阅读:
    设计模式----单例模式
    C++ 派生类
    C++ 操作符
    构造,清理,拷贝和移动
    php的yii框架开发总结10
    php的yii框架开发总结9
    php的yii框架开发总结8
    php的yii框架开发总结7
    php的yii框架开发总结6
    php的yii框架开发总结5
  • 原文地址:https://www.cnblogs.com/huangtailang/p/4432445.html
Copyright © 2011-2022 走看看