zoukankan      html  css  js  c++  java
  • C#将集合和Json格式互相转换的几种方式

    1.使用微软自带的System.Web.Extensions.dll转换,该DLL文件一般存在于如下路径:c:Program FilesReference AssembliesMicrosoftFrameworkv3.5System.Web.Extensions.dll
    具体操作如下:

    //将List集合转换为Json字符串,必须应用上面的DLL文件,同时引用using System.Web.Script.Serialization;命名空间
    JavaScriptSerializer serializer = new JavaScriptSerializer();
    List<Person> list = new List<Person>();
    for (int i = 0; i < 10; i++)
    {
       Person p = new Person("张三" + i, "重庆" + i, "10" + i);
       list.Add(p);
    }
    MessageBox.Show(serializer.Serialize(list));
    
    //将Json字符串转换为集合,Person为自己定义的实体类
    string json = "[{'Address':'重庆0','Age':'100','Name':'张三0'},{'Address':'重庆1','Age':'101','Name':'张三1'}]";
    JavaScriptSerializer serializer = new JavaScriptSerializer();
    List<Person> list = serializer.Deserialize<List<Person>>(json);

    2.可以借助开源的Newtonsoft.Json.dll进行转换

    //将List集合转换为Json字符串
    JavaScriptSerializer serializer = new JavaScriptSerializer();
    List<Person> list = new List<Person>();
    for (int i = 0; i < 10; i++)
    {
       Person p = new Person("张三" + i, "重庆" + i, "10" + i);
       list.Add(p);
    }
    MessageBox.Show(JsonConvert.SerializeObject(list));
    
    //从JSON字符串生成集合对象
    String json="[{"Name":"张三0","Address":"重庆0","Age":"100"},{"Name":"张三1","Address":"重庆1","Age":"101"}] ";
    var list=JsonConvert.DeserializeObject<Person>(json);

    3.引用微软如下两个DLL

    //注意引用:System.Runtime.Serialization,System.ServiceModel.Web
    // 从一个对象信息生成Json串
    public static string ObjectToJson(object obj)
    {
       DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
       MemoryStream stream = new MemoryStream();
       serializer.WriteObject(stream, obj);
       byte[] dataBytes = new byte[stream.Length];
       stream.Position = 0;
       stream.Read(dataBytes, 0, (int)stream.Length);
       return Encoding.UTF8.GetString(dataBytes);
    }
    // 从一个Json串生成对象信息
    public static object JsonToObject(string jsonString, object obj)
    {
       DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
       MemoryStream mStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
       return serializer.ReadObject(mStream);
    }

    备注:
    用到的类

    public class Person
    {
        public String Name { get; set; }
        public String Address { get; set; }
        public int Age { get; set; }
        
        public Person() { }
    
        public Person(String name, String address, String age)
        {
            this.Name = name;
            this.Address = address;
            this.Age = age;
        }
    }
  • 相关阅读:
    Android 中日期对话框的应用
    Unity3d 生命周期
    C#读写txt文件的两种方法介绍
    C# 获取文件夹下的所有文件夹及其文件
    NPOI 导出Excel
    SqlParameter 参数化模糊查询
    项目中的一个分页功能pagination
    MVC ---- ckeditor 循环遍历并绑定blur事件
    JQUERY链式操作实例分析
    mvc ---- ajax 提交过来的Json格式如何处理(解析)
  • 原文地址:https://www.cnblogs.com/duanjt/p/5180164.html
Copyright © 2011-2022 走看看