C#对Json进行序列化和反序列化

C#对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; } } JSONStrToList 

自定义模型

public class Obj { public string Name { get; set; } public double Price { get; set; } }

JSONStrToList

//json转对象、数组, 反序列化 public static void JSONStringToList() { //json格式字符串 string JsonStr = "{Name:'苹果',Price:5.5}"; JavaScriptSerializer Serializer = new JavaScriptSerializer(); //json字符串转为对象, 反序列化 Obj obj = Serializer.Deserialize<Obj>(JsonStr); Console.Write(obj.Name + ":" + obj.Price + "\r\n"); //json格式字符串 string JsonStrs = "[{Name:'苹果',Price:5.5},{Name:'橘子',Price:2.5},{Name:'柿子',Price:16}]"; JavaScriptSerializer Serializers = new JavaScriptSerializer(); //json字符串转为数组对象, 反序列化 List<Obj> objs = Serializers.Deserialize<List<Obj>>(JsonStrs); foreach (var item in objs) { Console.Write(item.Name + ":" + item.Price + "\r\n"); } } StrTosJSON public static JObject strToJson(string jsonText) { jsonText = "{\"shenzheng\":\"深圳\",\"beijing\":\"北京\",\"shanghai\":[{\"zj1\":\"zj11\",\"zj2\":\"zj22\"},\"zjs\"]}"; JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText); //或者 //JObject jo = JObject.Parse(jsonText); string zone = jo["shenzheng"].ToString();//输出 "深圳" string zone_en = jo["shanghai"].ToString();//输出 "[{"zj1":"zj11","zj2":"zj22"},"zjs"]" string zj1 = jo["shanghai"][1].ToString();//输出 "zjs" Console.WriteLine(jo); return jo; }

到此这篇关于C#对Json进行序列化和反序列化的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持易知道(ezd.cc)。

推荐阅读

    探探语言设置|探探怎么设置语言

    探探语言设置|探探怎么设置语言,,1. 探探怎么设置语言打开探探软件,然后就有消息提示的红点,点开就行了!其实这些软件都是挺简单的操作的,都是

    git设置编码|git语言设置

    git设置编码|git语言设置,,git设置编码点击cap4j搜索从git直接链接上拉代码。git语言设置Git是一个开源的分布式版本控制系统,可以有效、高

    Python之可迭代对象、迭代器、生成器

    Python之可迭代对象、迭代器、生成器,迭代,生成器,一、概念描述可迭代对象就是可以迭代的对象,我们可以通过内置的iter函数获取其迭代器,可

    应用程序对象

    应用程序对象,,应用程序对象是一个应用程序级对象,用于在所有用户之间共享信息,并且在Web应用程序运行期间可以保存数据。 应用的性质: 方法

    区域语言设置|区域语言设置工具

    区域语言设置|区域语言设置工具,,区域语言设置工具你好,大致的方法如下,可以参考:1、按下键盘的windows 图标,再开始菜单中单击“设置”;出现的

    c4d语言设置|c4d汉语设置

    c4d语言设置|c4d汉语设置,,1. c4d汉语设置mac版的C4D是这样的,中文字体是有的,但是是以拼音的形式存在,比如黑体就是ht。中文字体以拼音方式

    电脑宣传语|电脑宣传语言

    电脑宣传语|电脑宣传语言,,1. 电脑宣传语言1.我做好了与你过一辈子的打算,也做好了你随时要走的准备,2.每段青春都会苍老,但我希望记忆里的你

    office语言设置|微软office语言设置

    office语言设置|微软office语言设置,,微软office语言设置一、首先点击桌面左下角“WIN键”。二、弹出选项内点击“所有程序”。三、接着点