当前位置: 移动技术网 > IT编程>开发语言>c# > C#实现JSON字符串序列化与反序列化的方法

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

2019年07月18日  | 移动技术网IT编程  | 我要评论
c#将对象序列化成json字符串 public string getjsonstring() { list<product> 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对象,操作的时候就方便多了~

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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网