Json的序列化和反序列化
Json的序列化和反序列化
一、Json简介
Json(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JS的一个子集。 Json采用完全独立于语言的文本格式。这使得Json成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
Json简单来说就是JS中的对象和数组,所以Json也存在两种结构:对象、数组。
Json对象:Json对象定义在花括号“{}”内,以Key:value键值对的形式存放数据,多个数据使用分号“;”分割。
二、序列化
Object obj = Serialization.JsonToObject<Object>(strJson);
三、反序列化
strJson = Serialization.ObjectToJSON(obj);
四、工具类
public static class Serialization { public static T JsonToObject<T>(string jsonText) { DataContractJsonSerializer dataContractJsonSerializer = new DataContractJsonSerializer(typeof(T)); MemoryStream memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonText)); T result = (T)((object)dataContractJsonSerializer.ReadObject(memoryStream)); memoryStream.Dispose(); return result; } public static string ObjectToJSON<T>(T obj) { DataContractJsonSerializer dataContractJsonSerializer = new DataContractJsonSerializer(typeof(T)); string result = string.Empty; using (MemoryStream memoryStream = new MemoryStream()) { dataContractJsonSerializer.WriteObject(memoryStream, obj); memoryStream.Position = 0L; using (StreamReader streamReader = new StreamReader(memoryStream)) { result = streamReader.ReadToEnd(); } } return result; } }
本文来自博客园,作者:码农阿亮,转载请注明原文链接:https://www.cnblogs.com/wml-it/p/12619495.html
技术的发展日新月异,随着时间推移,无法保证本博客所有内容的正确性。如有误导,请大家见谅,欢迎评论区指正!
开源库地址,欢迎点亮:
GitHub:https://github.com/ITMingliang
Gitee: https://gitee.com/mingliang_it
GitLab: https://gitlab.com/ITMingliang
建群声明: 本着技术在于分享,方便大家交流学习的初心,特此建立【编程内功修炼交流群】,为大家答疑解惑。热烈欢迎各位爱交流学习的程序员进群,也希望进群的大佬能不吝分享自己遇到的技术问题和学习心得!进群方式:扫码关注公众号,后台回复【进群】。