C#实现JSON字符串序列化与反序列化的方法
程序员文章站
2022-03-14 18:10:13
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对象,操作的时候就方便多了~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。