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


    1. public string GetJsonString()  
    2. {  
    3.     List<Product> products = new List<Product>(){  
    4.     new Product(){Name="苹果",Price=5.5},  
    5.     new Product(){Name="橘子",Price=2.5},  
    6.     new Product(){Name="干柿子",Price=16.00}  
    7.     };  
    8.     ProductList productlist = new ProductList();  
    9.     productlist.GetProducts = products;  
    10.     return new JavaScriptSerializer().Serialize(productlist));  
    11. }  
    12.  
    13. public class Product  
    14. {  
    15.     public string Name { get; set; }  
    16.     public double Price { get; set; }  
    17. }  
    18.  
    19. public class ProductList  
    20. {  
    21.     public List<Product> GetProducts { get; set; }  

    这里主要是使用JavaScriptSerializer来实现序列化操作,这样我们就可以把对象转换成Json格式的字符串,生成的结果如下:

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

    如何将Json字符串转换成对象使用呢?

    在实际开发中,经常有可能遇到用JS传递一个Json格式的字符串到后台使用,如果能自动将字符串转换成想要的对象,那进行遍历或其他操作时,就方便多了。那具体是如何实现的呢?

    1. public static List<T> JSONStringToList<T>(this string JsonStr)  
    2. {  
    3.     JavaScriptSerializer Serializer = new JavaScriptSerializer();  
    4.     List<T> objs = Serializer.Deserialize<List<T>>(JsonStr);  
    5.     return objs;  
    6. }  
    7.  
    8. public static T Deserialize<T>(string json)  
    9. {  
    10.     T obj = Activator.CreateInstance<T>();  
    11.     using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))  
    12.     {  
    13.         DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());  
    14.         return (T)serializer.ReadObject(ms);  
    15.     }  
    16. }  
    17.  
    18. string JsonStr = "[{Name:'苹果',Price:5.5},{Name:'橘子',Price:2.5},{Name:'柿子',Price:16}]";  
    19. List<Product> products = new List<Product>();  
    20. products = JSONStringToList<Product>(JsonStr);  
    21.  
    22. foreach (var item in products)  
    23. {  
    24.     Response.Write(item.Name + ":" + item.Price + "<br />");  
    25. }  
    26.  
    27. public class Product  
    28. {  
    29.     public string Name { get; set; }  
    30.     public double Price { get; set; }  

    在上面的例子中,可以很方便的将Json字符串转换成List对象,操作的时候就方便多了~

  • 相关阅读:
    Realtime crowdsourcing
    maven 常用插件汇总
    fctix
    sencha extjs4 command tools sdk
    首次吃了一颗带奶糖味的消炎药,不知道管用不
    spring mvc3 example
    ubuntu ati driver DO NOT INSTALL recommand driver
    yet another js editor on windows support extjs
    how to use springsource tools suite maven3 on command
    ocr service
  • 原文地址:https://www.cnblogs.com/hgmyz/p/6484414.html
Copyright © 2020-2023  润新知