惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
量子位
D
DataBreaches.Net
博客园 - 司徒正美
J
Java Code Geeks
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
B
Blog
The Cloudflare Blog
D
Docker
I
InfoQ
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
腾讯CDC
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
S
SegmentFault 最新的问题
GbyAI
GbyAI
有赞技术团队
有赞技术团队

博客园 - 叶晓丰

excel导入记录 2342432432 list2json list排序 MSSQL自动备份数据库 IIS 7完全攻略之日志记录配置(摘自网络) 今天开始57商城开发 sSELECT INTO 和 INSERT INTO SELECT记录 网站性能优化之缓存篇 通过Web Services上传和下载文件 jquery.tablesorter - 叶晓丰 - 博客园 把image转换为byte[] 基于wcf的异步上传 - 叶晓丰 - 博客园 .net 获取目录uri |虚拟目录 ajax开源网址 jQuery图片滚动十佳插件重点介绍 jqery正规表达式 - 叶晓丰 - 博客园 jqery插件资源 弹出窗体
C#将Json字符串反序列化成List对象类集合
叶晓丰 · 2015-10-06 · via 博客园 - 叶晓丰

摘自:http://blog.csdn.net/cdefg198/article/details/7520398

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