简单Json序列化和反序列化

序列化是什么:

序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。
序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求有恢复数据的对象实例。

序列化有什么特点:

如果某个类能够被序列化,其子类也可以被序列化。声明为static和transient类型的成员数据不能被序列化。因为static代表类的状态, transient代表对象的临时数据。

什么时候使用序列化:

一:对象序列化可以实现分布式对象。
二:对象序列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据。可以将整个对象层次写入字节流中,可以保存在文件中或在网络连接上传递。利用对象序列化可以进行对象的"深复制",即复制对象本身及引用的对象本身。序列化一个对象可能得到整个对象序列。

1.新建类HotAreaJson,在里面设置自己想要的json格式

 1  public class HotAreaJson
 2     {
 3         public string ModuleType { get; set; }
 4
 5         public string ImgUrl { get; set; }
 6
 7         public List<Area> AreaList { get; set; }
 8
 9         public class Area {
10             public string AreaLink { get; set; }
11             public int Crop_x { get; set; }
12             public int Crop_y { get; set; }
13             public int Crop_w { get; set; }
14             public int Crop_h { get; set; }
15         }
16

2、Controller中实例化HotAreaJson类

 1 HotAreaJson Area = new HotAreaJson();
 2
 3 Area.ImgUrl ="";
 4 Area.AreaList = new List<HotAreaJson.Area>();
 5 Area.ModuleType = "HotArea";
 6
 7 string ModuleData = ObjToJson1(Area);//转化为Json字符串
 8
 9 //单个对象转Json 方法
10 public string ObjToJson<T>(T data)
11 {
12 JavaScriptSerializer jss = new JavaScriptSerializer();
13 string JsonStr = jss.Serialize(data);
14 return JsonStr;
15 }

3.反序列化对数据重新编辑并重新复制保存

 1  var data = Newtonsoft.Json.JsonConvert.DeserializeObject<HotAreaJson>(ModuleData);//反序列化得到以保存的数据
 2
 3  HotAreaJson.Area area = new HotAreaJson.Area();
 4
 5 area.Crop_x = 1111;
 6 area.Crop_y = 2222;
 7 area.Crop_w = 3333;
 8 area.Crop_h = 4444;
 9 area.AreaLink = "www.baidu.com";
10
11 ModuleData = ObjToJson(data);//转为json字符串

 代码为简化过的,只为笔记用,有啥问题还望指出来一起进步,多多指教!

时间: 2024-11-06 20:16:32

简单Json序列化和反序列化的相关文章

Swifter.Json -- 在 .Net 平台上的一个功能强大,简单易用,稳定又不失高性能的 JSON 序列化和反序列化工具。

Swifter.Json Github Wiki 在 .Net 平台上的一个功能强大,简单易用,稳定又不失高性能的 JSON 序列化和反序列化工具. Swifter.Json 已经经过了大量测试和线上项目中运行许久来确保它的稳定性. 特性 1: 支持 .Net 上绝大多是的数据类型,且轻松扩展:包括但不限于:实体,字典,集合,迭代器,数据读取器和表格. 2: 支持 .Net 我已知的大多数平台,包括但不限于:.Net Framework 2.0+, .Net Core 2.0+, .Net St

DotNet的JSON序列化与反序列化

JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有两种表示结构,对象和数组,JSON 数据的书写格式是:名称/值对. 在vs解决方案中以前采用xml树的形式,组织项目的结构.在新的.net core中,项目的解决方案采用json作为项目的结构说明. 在.net的前后台数据交互中,采用序列化对象为json,前端ajax接受传输数据,反序列化为对象,在

json序列化和反序列化案例

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 序列化简单理解为:把集合.数组等里的数据变成字符串 反序列化简单理解为:把字符串还原成集合,数组等对象. 1.对JSON数据进行序列化和反序列化 方法一: 可以使用DataContractJsonSeria

转:Json序列化和反序列化

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集 合.字典的处理.     一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是“名值对”的集合.结构由大括号'{}',

迄今为止 .Net 平台功能最强大,性能最佳的 JSON 序列化和反序列化库。

原文:迄今为止 .Net 平台功能最强大,性能最佳的 JSON 序列化和反序列化库. Swifter.Json 这是迄今为止 .Net 平台功能最强大,性能最佳的 JSON 序列化和反序列化库. Github : https://github.com/Dogwei/Swifter.Json 之所以说强大,因为这些功能其他框架没有! (1): 支持深度复杂的对象结构且易于使用. (2): 用 $ref 表示重复和循环引用的序列化和反序列化. (3): 目前唯一支持 ref 属性的 JSON 库.

JSON序列化和反序列化

1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg: A a=new A(); a.Name="Elain00"; a.Hobby="eat eat"; string jsonStr=JsonConvert.SerializeObject(a); 2.JSON反序列化 string jsonstr = "jsonString"; Class model = JsonC

C#中JSON序列化和反序列化

json序列化和反序列化帮助类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; using System.IO; using System.Text.RegularExpressions; using System.We

newtonsoft.json 序列化,反序列化

public class Book { public string BookID { get; set; } public DateTime PublishDate { get; set; } public decimal Price { get; set; } public override string ToString() { return "ID:" + BookID + "; Date:" + PublishDate.ToShortDateString()

C# 二进制、Xml、Json序列化和反序列化

昨天利用业余时间对比了下C#中三种序列化方式(二进制.Xml.Json),综合来看json方式生成的字节数组长度最短,但当你需要序列化的对象中包括byte[]类型,且其长度较长时,序列化后,xml方式的长度较json方式更短.xml方式中对byte[]做了base64转换. 最后综合三种情况,写了一个基于泛型的通用类来完成序列化和反序列化操作,仅供参考,若有什么错误之处,还请指教. using System; using System.Collections.Generic; using Sys