zoukankan      html  css  js  c++  java
  • Json的序列化与反序列化

    C#Json字符串反序列化成List对象类集合

    using System.IO;
    using System.Web.Script.Serialization;
    using System.Runtime.Serialization.Json;
    public static List<T> JSONStringToList<T>(this string JsonStr)
        {
            JavaScriptSerializer Serializer = new JavaScriptSerializer();
            List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);
            return objs;
        }
     
        public static T Deserialize<T>(string json)
        {
            T obj = Activator.CreateInstance<T>();
            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
            {
                DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
                return (T)serializer.ReadObject(ms);
            }
    }

    好了,我们来测试下

    string JsonStr = "[{Name:'苹果',Price:5.5},{Name:'橘子',Price:2.5},{Name:'柿子',Price:16}]";
    List<Product> products = new List<Product>();
    products = JSONStringToList<Product>(JsonStr);
    //Response.Write(products.Count());
    foreach (var item in products)
    {
       Response.Write(item.Name + ":" + item.Price + "<br />");
    }
    public class Product
    {
       public string Name { get; set; }
       public double Price { get; set; }
    }

    结果:

    苹果:5.5
    橘子
    :2.5
    柿子:16

     

    ==============================

    C#将对象序列化成JSON字符串

     

    using System.Web.Script.Serialization;
    public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
     
                List<Product> products = new List<Product>(){
                new Product(){Name="苹果",Price=5.5},
                new Product(){Name="橘子",Price=2.5},
    new Product(){Name="干柿子",Price=16.00}
                };
                ProductList productlist = new ProductList();
                productlist.GetProducts = products;
                context.Response.Write(new JavaScriptSerializer().Serialize(productlist));
            }
    public bool IsReusable
    {
    get
    {
                    return false;
    }
    }
     
            public class Product
            {
                public string Name { get; set; }
                public double Price { get; set; }
            }
     
            public class ProductList
            {
                public List<Product> GetProducts { get; set; }
            }
     

     

    生成的JSON结果如下:

    {"GetProducts":[{"Name":"苹果","Price":5.5},{"Name":"橘子","Price":2.5},{"Name":"柿子","Price":16}]}

     

    来源:
    http://www.rczjp.cn/HTML/110126/20110226120213.html
    http://www.rczjp.cn/HTML/101201/20104701014751.html

  • 相关阅读:
    真正的e时代
    在线手册
    UVA 10616 Divisible Group Sums
    UVA 10721 Bar Codes
    UVA 10205 Stack 'em Up
    UVA 10247 Complete Tree Labeling
    UVA 10081 Tight Words
    UVA 11125 Arrange Some Marbles
    UVA 10128 Queue
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/3Tai/p/json.html
Copyright © 2011-2022 走看看