JSON序列化与反序列化枚举

一、JSON序列化与反序列化枚举

1.这个示例使用了一个JsonConverter定制如何序列化JSON与反序列化枚举

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GongHuiNewtonsoft.Json;
using GongHuiNewtonsoft.Json.Converters;

namespace JSONDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            List stringList = new List 
            { 
                StringComparison.CurrentCulture,
                StringComparison.Ordinal,
                StringComparison.OrdinalIgnoreCase,
                StringComparison.InvariantCulture
            };

            //没有序列化
            string jsonWithoutConverter = JsonConvert.SerializeObject(stringList);
            Console.WriteLine(jsonWithoutConverter);

            //序列化枚举列表List
            string jsonWidthConverter = JsonConvert.SerializeObject(stringList, new StringEnumConverter());
            Console.WriteLine(jsonWidthConverter);

            //反序列化枚举列表List
            List enumList = JsonConvert.DeserializeObject>(jsonWidthConverter, new StringEnumConverter());
            Console.WriteLine(string.Join(", ", enumList.Select(e => e.ToString()).ToArray()));
        }
    }
}


 

2.序列化运行的结果

JSON序列化与反序列化枚举_第1张图片

 
二、 JSON序列化与反序列化自定义枚举

1.自定义枚举Stuff

using System;

namespace JSONDemo
{
    public enum Stuff
    {
        Car,
        Cat,
        Hotel,
        Tree,
        Dog
    }
}


2.序列化与反序列化枚举列表

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GongHuiNewtonsoft.Json;
using GongHuiNewtonsoft.Json.Converters;

namespace JSONDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            List oldList = new List 
            { 
                Stuff.Dog,
                Stuff.Cat
            };

            //序列化自定义枚举
              string json = JsonConvert.SerializeObject(oldList, new StringEnumConverter());
            Console.WriteLine(json);

            //反序列化自定义枚举
              List newList = JsonConvert.DeserializeObject>(json, new StringEnumConverter());
            Console.WriteLine(string.Join(", ", newList.Select(n => n.ToString()).ToArray()));
        }
    }
}

 

3.运行结果

JSON序列化与反序列化枚举_第2张图片
 

 

JSON源代码下载地址:http://download.csdn.net/detail/lovegonghui/9342751

 

你可能感兴趣的:(JSON)