C#中json序列化与反序列化

json格式概念

JSON(JavaScript Object Notation) 是一种轻量级的数据传输格式,其采用完全独立于语言的文本格式,使JSON成为理想的数据交换语言。
json由两种格式组成。
1.名称/值”对的集合,可以一起创建多个"名称 / 值对"。
{ “firstName”: “1”, “lastName”:“1”, “qq”: “1234567” }
2.值的有序列表,一般被理解为数组(array)。当需要表示一组值时,只需将多个带花括号的记录分组在一起。
{ “num”: [
{ “firstName”: “1”, “lastName”:“1”, “qq”: “1234567” },
{ “firstName”: “2”, “lastName”:“2”, “qq”: “1234567”},
{ “firstName”: “3”, “lastName”:“3”, “qq”: “1234567” }
]}
由于json是 JavaScript 原生格式,所以在C#中需要下载安装Newtonsoft.Json。

VS2019中安装Newtonsoft

点击工具-nuget包管理器-管理解决方案-浏览搜索-安装
在这里插入图片描述

在这里插入图片描述

示例

安装完后添加引用就可以写代码了。
建一个窗体程序,设置下界面:
在这里插入图片描述
添加引用

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

写代码:

//匿名对象Measure dataObj = new Measure{   ID = "abc",Height = 100,Width = 20,Diameter = 2.152,Plat =0.01};#region//直接序列化//直接转化为Json 格式。string Result = JsonConvert.SerializeObject(dataObj);richTextBox1.AppendText(Result);//保存为文件System.IO.File.WriteAllText(@"D:\measure.json", Result);//反序列化为正常字符串Measure ResultD = JsonConvert.DeserializeObject<Measure>(Result);//反序列化文件Measure ResultD1 = JsonConvert.DeserializeObject<Measure>(System.IO.File.ReadAllText(@"D:\measure.json"));           richTextBox2.Text = ResultD.ID;richTextBox2.AppendText(System.Environment.NewLine + ResultD1.Height);#endregion

下面还要加一个类

    public class Measure{public string ID { get; set; }public double Height { get; set; }public double Width { get; set; }public double Diameter { get; set; }public double Plat { get; set; }}

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

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

相关文章

volley用法之 以post方式发送 json 参数

需求是这样 我们需要发送一个post请求向服务器要参数。要求是发送的post参数也要是json格式。 简单一点的是这样的&#xff1a; 如果要发送的是这样简单的json格式&#xff0c;我们可以简单的使用map来实现&#xff1a; RequestQueue requestQueue Volley.newRequestQueue(get…

我的友情链接

小小忍者Tab转载于:https://blog.51cto.com/12737170/2043087

JAVA 文件编译执行与虚拟机(JVM)简单介绍

详见&#xff1a;http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 Java 虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上&#xff0c;就能保证经过编译的任…

C#中数据流(文件流、内存流、网络流等)相关知识点梳理

基本概念 C#中数据流的应用体现在方方面面&#xff0c;现在针其常用的几种类进行一次梳理。 数据流包括文件流(FileStream)、内存流(MemoryStream)、网络流(NetworkStream)以及读写流如StreamReader、StreamWriter、BinaryReader和BinaryWriter等。 数据流是什么&#xff1f; …

dns服务 很多问题,后续再研究

慕课网&#xff1a;http://www.imooc.com/video/5220 参考&#xff1a;http://jingyan.baidu.com/article/870c6fc32c028eb03fe4be30.html http://www.tuicool.com/articles/aUNzMfi http://www.07net01.com/linux/dnszhucongfuzhijiquyuchuansong_505144_1373161402.html http…

LINUX下用脚本实现JDK+TOMCAT

这几天真是累。常常下半夜3点睡觉。是因为这段时间对LINUX下的SHELL编程喜欢上了。 一时弄的忘了睡觉。还好&#xff0c;累没白累。遍写了一个JDKTOMCAT的自动安装&#xff0c;配置的脚本 在这里我把配置出来的成果拿来和大家分享一下。希望有高手来指定一下&#xff0c;我在编…

【图像处理】——图像增强Python实现直方图均衡化

目录 一、相关概念 1、灰度直方图概念(hist) 2、灰度概率累积函数(cdf) 3、灰

C#常见编码方式总结

一、概念 我们知道计算机是基于二进制来表示数据的&#xff0c;那么对于字母和汉字等字符用二进制如何表示&#xff1f; 这就需要用一种编码方式将这些字母或者符号转换二进制表示。首先需要对字符集进行编码表示&#xff0c;每个编码代表一个固定的字符&#xff0c;然后再将字…

Spring中ApplicationContext加载机制

详见&#xff1a;http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp33 加载器目前有两种选择&#xff1a;ContextLoaderListener和ContextLoaderServlet。 这两者在功能上完全等同&#xff0c;只是一个是基于Servlet2.3版本中新引入的Listener接口实现&#xff0c;…

Codeforces 724 C. Ray Tracing

Codeforces 724 C. Ray Tracing 题目来源 codeforces 题意&#xff1a; 有一些传感器按输入坐标分布在图上&#xff0c;有一道光从(0,0)沿45角出射&#xff0c;遇到边按反射法则反射&#xff0c;遇到角落结束。 问每一个点被经过的时间&#xff0c;并按照输入顺序输出。题解&am…

CDN架构以及原理分析

详见&#xff1a; http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp61 在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度、优化现有Internet中信息的流动,需要在用户和服务器间加入中间层CDN. 使用户能以最快的速度&#xff0c;从最接近用…

基于VS2019的Eigen库安装详解

概念 Eigen是一个C开源线性代数库&#xff0c;以提供有关矩阵的的线性代数运算&#xff0c;解方程等功能。Eigen在很多领域如信号处理&#xff0c;图像处理&#xff0c;深度学习等起到重要作用&#xff0c;学习其操作方法&#xff0c;可以灵活的对线性代数、矩阵和矢量将进行计…

【图像处理】——Python图像分割边缘检测算法之二阶梯度算子(laplace、log、dog算子)

目录 一、二阶算子简介 二、laplace(拉普拉斯算子) 1、什么是拉普拉斯算子

C#中不常见的运算符功能汇总

介绍 C#有很多运算符&#xff0c;可分为以下几种&#xff1a;算数运算符&#xff0c;比较运算符&#xff0c;条件运算符&#xff0c;赋值运算符&#xff0c;逻辑运算符。下面对不常见的运算符进行汇总。 概念 条件运算符 ?(可空类型修饰符) 引用类型可以使用空引用表示一…

SQL Server2012中如何通过bak文件还原SQL Server2012数据库

1 登陆完数据库后&#xff0c;不要新建数据库&#xff0c;直接点击“数据库”然后右击"还原数据库"。 2 在"源"选项中选择"设备"。 3 选择相应的bak文件并进行添加。 4 添加完之后点击确定&#xff0c;注意在目标这一栏中数据库名称都可以不用写…

【图像处理】——Python OpenCV实现形态学膨胀、腐蚀开闭操作(可以用于图像滤波、图像分割等)

转载博客请注明详细地址,谢谢本文讲了形态学基本操作膨胀腐蚀开闭操作的原理本文讲解了用OpenCV-Python实现形态学操作目录 一、形态学简述 1、简介 2、一些基本定义 3、结构元素

thrift服务windows环境编译失败

为什么80%的码农都做不了架构师&#xff1f;>>> 修改maven的pom文件 <!--thrift服务 api 层&#xff0c;开发时 windows系统需指定exe程序位置--> <properties> <thrift.exe.path>E:/Thrift/thrift-0.9.3.exe</thrift.exe.path&g…

编译包含Google Play服务App的SDK版本问题

编译包含Google Play服务App的SDK版本问题 错误信息&#xff1a;No Resouce identifier found for attribute ‘touchscreen BlocksFocus’ in package ‘android’这个错误通常是App引用了Google Play时候发生。Xamarin编译该类App&#xff0c;需要目标SDK版本必须是21或者更高…

《第一行代码》学习笔记35-服务Service(2)

1.Android的UI线程不安全&#xff0c;想要更新应用程序里的UI元素&#xff0c;则须在主线程中进行&#xff0c;否则会出现异常。 2.Android不允许在子线程里进行UI操作&#xff0c;对于该情况&#xff0c;Android提供了一套异步消息处理机制&#xff0c;完美解决在子线程中进行…