.Net序列化与反序列化的2种方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;    //方法一的引用
using System.Web.Script.Serialization;   //方法二的引用namespace ConsoleApplication1
{class Program{static void Main(string[] args){#region(一)引用Newtonsoft.Json//①序列化实体对象User u = new User(){Name = "曹操",Age = 10,Sex = ""};string json = JsonConvert.SerializeObject(u);Console.WriteLine(json);   //{"Name":"曹操","Age":10,"Sex":"男"}
            Console.ReadKey();//②反序列化实体对象User model = JsonConvert.DeserializeObject<User>(json);Console.WriteLine(string.Format("姓名:{0},年龄:{1},性别:{2}",model.Name,model.Age,model.Sex));   //姓名:曹操,年龄:10,性别:男
            Console.ReadKey();//③序列化实体对象集合List<User> ulst = new List<User>(){new User {Name="曹操",Age=10,Sex="" },new User {Name="刘备",Age=12,Sex="" },new User {Name="孙权",Age=13,Sex="" },};string json2 = JsonConvert.SerializeObject(ulst);Console.WriteLine(json2);    //[{"Name":"曹操","Age":10,"Sex":"男"},{"Name":"刘备","Age":12,"Sex":"女"},{"Name":"孙权","Age":13,"Sex":"男"}]
            Console.ReadKey();//④反序列化实体对象集合List<User> ulst2 = JsonConvert.DeserializeObject<List<User>>(json2);foreach (User user in ulst2){Console.WriteLine(string.Format("姓名:{0},年龄:{1},性别:{2}", user.Name, user.Age, user.Sex));}//姓名:曹操,年龄:10,性别:男//姓名:刘备,年龄:12,性别:女//姓名:孙权,年龄:13,性别:男
            Console.ReadKey();#endregion#region(二)引用System.Web.Extensions//①序列化实体对象User u2 = new User(){Name = "曹操",Age = 10,Sex = ""};JavaScriptSerializer js = new JavaScriptSerializer();string json3 = js.Serialize(u2);Console.WriteLine(json3);//{"Name":"曹操","Age":10,"Sex":"男"}
            Console.ReadKey();//②反序列化实体对象User model2 = js.Deserialize<User>(json3);Console.WriteLine(string.Format("姓名:{0},年龄:{1},性别:{2}", model2.Name, model2.Age, model2.Sex));//姓名:曹操,年龄:10,性别:男
            Console.ReadKey();#endregion}}//User实体对象class User{public string Name { get; set; }public int Age { get; set; }public string Sex { get; set; }}
}

 

转载于:https://www.cnblogs.com/yanyufei/p/9046885.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

200个模块,怎么用有线的方式进行组网通信

这是一个读者私聊我的问题&#xff0c;我觉得比较有意思&#xff0c;发出来大家一起讨论&#xff0c;我相信在讨论后&#xff0c;会有更加好的的方案。问题有200个模块&#xff0c;这200个模块需要和主CPU进行通信&#xff0c;每个模块的距离大概在30~50cm之间&#xff0c;用怎…

两招让陌生网络访问者现出原形

当我们关闭计算机时&#xff0c;经常出现“有一台计算机与你的电脑有连接,如果关闭将中断数据”的提示&#xff0c;尤其是在局域网中这种提示更是经常出现。其实这是因为别人通过网络正在访问自己电脑上的共享资源呢!面对如此恶劣的行动&#xff0c;难道只能任其胡作非为吗!当然…

将二维数组名作为函数实参

可以用二维数组名作为实参或者形参&#xff0c;在被调用函数中对形参数组定义时可以指定所有维数的大小&#xff0c;也可以省略第一维的大小说明&#xff0c;如&#xff1a; void Func(int array[3][10]); void Func(int array[][10]); 二者都是合法而且等价&#xff0c;但是不…

每日一题(19)—— 用变量a给出下面的定义

(a) 一个整型数&#xff08;An integer&#xff09; (b) 一个指向整型数的指针&#xff08;A pointer to an integer&#xff09; (c) 一个指向指针的的指针&#xff0c;它指向的指针是指向一个整型数&#xff08;A pointer to a pointer to an integer&#xff09; (d) 一个…

网易创始人之一,周卓林先生

这篇文章的主人公我觉得对我们做技术的人非常有借鉴作用。大学的时候&#xff0c;我们老师就一直强调&#xff0c;一命&#xff0c;二运&#xff0c;三风水&#xff0c;四积德&#xff0c;五读书&#xff0c;后面我就不记得了。1、1997年2月&#xff0c;周卓林上Hotmail&#x…

sql2005 无法解决 equal to 操作Chinese_PRC_CI_AS 和 Chinese_PRC_CS_AS 之间的排序

错误代码&#xff1a; SELECT * FROM SJCCBZ, Order_Motor WHERE SJCCBZ.OrderIDOrder_Motor.OrderID and SJCCBZ.OrderID1AND Order_Motor.M_State已报账 错误提示&#xff1a; 消息 468&#xff0c;级别 16&#xff0c;状态 9&#xff0c;第 1 行 无法解决 equal to 操作中 …

MapReduce编程中常用的字符操作

本文主要用于记录自己在编写mapreduce程序时常用的一些方法&#xff0c;后期会不断更新&#xff0c;用于自己复习和给新手一些帮助。 字符串操作 String str " 12345"; // 字符串中是否包含某子字符串System.out.println(str.contains("123"));// …

用单片机制作简单的频率计

点击上方“果果小师弟”&#xff0c;选择“置顶/星标公众号”干货福利&#xff0c;第一时间送达&#xff01;摘要&#xff1a;利用定时器产生PWM波。然后利用32的外部中断和定时器来测量32输出的波形 硬件&#xff1a;STM32F103C8T6核心板、示波器、串口调试助手 所用到的的引脚…

每日一题(20)——malloc与free(一)

void GetMemory(char *p) {p (char *)malloc(100); }void Test(void) {char *str NULL;GetMemory(str);strcpy(str, "hello world");printf(str); } 1、指出编程错误 2、指出错误后果 3、指出纠正方法 分析&#xff1a; 1、调用GetMemory( str )后&#xff0c;…

gentoo ffmpeg+mencoder快速搭建视频处理系统笔记

软件说明&#xff1a;MP3支持&#xff1a;lamexvid支持&#xff1a;xvidH264/AVC支持&#xff1a;x264AC3支持&#xff1a;liba52MPEG4 ACC支持&#xff1a;faac、faad23GPP AMR Floating point 和 AMR-Wideband支持&#xff1a;libamrnb、libamrwbemerge lame libogg libvorbi…

深入理解Linux内核之内核抢占

1.开场白环境&#xff1a;处理器架构&#xff1a;arm64内核源码&#xff1a;linux-5.11ubuntu版本&#xff1a;20.04.1代码阅读工具&#xff1a;vimctagscscope我们或许经常听说过内核抢占&#xff0c;可是我们是否真正理解它呢&#xff1f;内核抢占和抢占式内核究竟有什么关系…

Python+Selenium学习笔记10 - send_keys上传文件

在火狐浏览器上传文件 上传前&#xff0c;同一个HTML文件在火狐和Edge浏览器显示有些不同 这是Firefox浏览器的显示 这是Edge浏览器 上传后 1 # coding utf-82 3 from selenium import webdriver4 import os5 import time6 7 dr webdriver.Firefox()8 file_path "file:…

不错,又有东西可以领!顺带开发个炫彩灯

什么是涂鸦Arduino SDK?Arduino 是全球最流行的开源硬件平台&#xff0c;涂鸦官方推出的 Arduino 开发驱动库&#xff0c;使用任意 Arduino 开发板涂鸦通用模组即可快速实现设备联网&#xff0c;开发属于自己的 IoT 项目。本次实战营适合你吗?没基础 —— Arduino 开发需要掌…

每日一题(21)——malloc与free(二)

char *GetMemory(void) {char p[] "hello world";return p; }void Test(void) {char *str NULL;str GetMemory();printf(str); }1、指出编程错误 2、指出错误后果 3、指出纠正方法分析&#xff1a; 运行结果可能会乱码&#xff0c;因为GetMemory返回的是指向“栈…

GNS3从入门到精通

GNS3是一款优秀的具有图形化界面的模拟器。可以运行在多平台上&#xff08;Windows&#xff0c;Linux&#xff0c;MacOS等&#xff09;。其最大的特点就是搭建拓扑极其简单&#xff0c;且支持保存startup-config&#xff0c;供下次实验中继续导入使用&#xff0c;而且所有设备导…

Android App优化之ANR详解

引言 背景:Android App优化, 要怎么做?Android App优化之性能分析工具Android App优化之提升你的App启动速度之理论基础Android App优化之提升你的App启动速度之实例挑战Android App优化之Layout怎么摆Android App优化之ANR详解Android App优化之消除卡顿Android App优化之内存…

面试官让你用C语言实现大数相乘,慌吗?

在之前的笔试题解析里面&#xff0c;我写了大数相加的问题&#xff0c;这里再剖析一个大数相乘&#xff0c;顾名思义&#xff0c;大数相乘就是这个数已经大到最大的数据类型都没有办法保存了。我们看看最大的数据类型可以保存多大的数据。#include "stdio.h" #includ…

写给偷偷老去的80后

喜欢隐身了&#xff0c;不怎么爱在群里发言了    同学聚会必修的两个项目&#xff1a;吃饭&#xff0c;    小孩都开始叫自己叔 叔或者阿姨了,虽然经常不大情愿地反驳着&#xff1a;叫姐姐&#xff0c;叫哥哥    永远寂寞&#xff0c;不管你是一人独处时&#xff0c…

每日一题(22)——malloc与free(三)

void GetMemory(char **p, int num) {*p (char *)malloc(num); }void Test(void) {char *str NULL;GetMemory(&str, 100);strcpy(str, "hello world");printf(str); }1、指出编程错误 2、指出错误后果 3、指出纠正方法 分析&#xff1a; 内存只分配&#xff…

每周分享之cookie详解

本章从JS方向讲解cookie的使用。&#xff08;实质上后端代码也是差不多用法&#xff0c;无非读取和设置两块&#xff09; 基本用法&#xff1a;document.cookie"usernamepengpeng"; 修改的时候也是这句&#xff0c;重新赋值即可。 一般的&#xff0c;cookie是记域名的…