欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#实现JSON字符串序列化与反序列化的方法

程序员文章站 2022-06-24 23:18:18
c#将对象序列化成json字符串 public string getjsonstring() { list product...

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对象,操作的时候就方便多了~

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。