C#实现JSON字符串序列化与反序列化的方法
作者:笨笨丁 发布时间:2023-12-01 12:40:23
标签:c#,json,反序列化,序列化
C#将对象序列化成JSON字符串
public string GetJsonString()
{
List<Product> products = new List<Product>(){
new Product(){Name="苹果",Price=5},
new Product(){Name="橘子",Price=5},
new Product(){Name="干柿子",Price=00}
};
ProductList productlist = new ProductList();
productlistGetProducts = products;
return new JavaScriptSerializer()Serialize(productlist));
}
public class Product
{
public string Name { get; set; }
public double Price { get; set; }
}
public class ProductList
{
public List<Product> GetProducts { get; set; }
}
这里主要是使用JavaScriptSerializer来实现序列化操作,这样我们就可以把对象转换成Json格式的字符串,生成的结果如下:
{"GetProducts":[{"Name":"苹果","Price":5},{"Name":"橘子","Price":5},{"Name":"柿子","Price":16}]}
如何将Json字符串转换成对象使用呢?
在实际开发中,经常有可能遇到用JS传递一个Json格式的字符串到后台使用,如果能自动将字符串转换成想要的对象,那进行遍历或其他操作时,就方便多了。那具体是如何实现的呢?
public static List<T> JSONStringToList<T>(this string JsonStr)
{
JavaScriptSerializer Serializer = new JavaScriptSerializer();
List<T> objs = SerializerDeserialize<List<T>>(JsonStr);
return objs;
}
public static T Deserialize<T>(string json)
{
T obj = ActivatorCreateInstance<T>();
using (MemoryStream ms = new MemoryStream(EncodingUTFGetBytes(json)))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(objGetType());
return (T)serializerReadObject(ms);
}
}
string JsonStr = "[{Name:'苹果',Price:5},{Name:'橘子',Price:5},{Name:'柿子',Price:16}]";
List<Product> products = new List<Product>();
products = JSONStringToList<Product>(JsonStr);
foreach (var item in products)
{
ResponseWrite(itemName + ":" + itemPrice + "<br />");
}
public class Product
{
public string Name { get; set; }
public double Price { get; set; }
}
在上面的例子中,可以很方便的将Json字符串转换成List对象,操作的时候就方便多了~
来源:http://www.cnblogs.com/dwfbenben/archive/2013/06/06/3122662.html


猜你喜欢
- 什么是自动装箱和拆箱自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之
- 本文实例讲述了Android中Market的Loading效果实现方法。分享给大家供大家参考。具体如下:在Android中,要实现Loadi
- Spring Boot从天而降Spring Boot是企业级开发的整体整合解决方案,在现在企业项目开发中使用非常普遍,Spring Boot
- 实践过程😜富文本芝麻粒儿提醒:标签是成对出现的就不要省略,有的不是成对的在修改了后就恢复过来,如下方alpha示例,否则多了很容易出现意外的
- 对一个对象进行属性分析,并得到相应的属性值,并判断属性的默认值以及空值 public class People
- 之前我一直认为 Mybatis 框架下已经实现预编译机制,很多东西都封装好了,应该基本上不会再有 SQL 注入问题了。近期在渗透中发现,在实
- 一、包装类概述Java有8种基本数据类型:整型(byte、short、int、long)、浮点型(float、double)、布尔型bool
- JDK * 实现原理 * 机制通过实现 InvocationHandler 接口创建自己的调用处理器通过为 Proxy 类指定 Clas
- 在Android系统中提供了多种存储技术.通过这些存储技术可以将数据存储在各种存储介质上.比如sharedpreferences可以将数据保
- 本文实例讲述了Android编程实现WebView自适应全屏的方法。分享给大家供大家参考,具体如下:第一种:settings.setUseW
- 前言关于RecyclerView的使用这里就不在赘述了,相信网上一搜一大把(本人之前的文章也有简单的使用介绍),这次我们讲的是Recycle
- 推荐阅读idea官网下载链接(对应版本号下载):https://www.jetbrains.com/idea/download/other.
- ViewDragHelper是support.v4下提供的用于处理拖拽滑动的辅助类,查看Android的DrawerLayout源码,可以发
- 一.模拟问题最近在公司遇到一个问题,挂号系统是做的集群,比如启动了两个相同的服务,病人挂号的时候可能会出现同号的情况,比如两个病人挂出来的号
- 1、jdbc1) 含义:JDBC是java语言连接数据库,Java Date Base Connectivity2) jdbc的本质:在编程
- 其实项目网上有很多了,但是教程比较详细的没多少,今天分享的项目从安装部署到代码具体功能都有很详细都说明eladmin 是一款基于 Sprin
- 这篇文章主要介绍了Java JDBC导致的反序列化攻击原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- Android有三个基础组件Activity,Service和BroadcastReceiver,他们都是依赖Intent来启动。本文介绍的
- 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法 :使用WebBrowser的ProgressChan
- 一直在使用Mybatis这个ORM框架,都是使用mybatis里的一些常用功能。今天在项目开发中有个业务是需要限制各个用户对某些表里的字段查