当前位置: 首页 > news >正文

C#/WPF JSON序列化和反序列化

什么是json

        json是存储和交换文本信息的方法,类似xml。但是json比xml更小,更快,更易于解析。并且json采用完全独立于语言的文本格式(即不依赖于各种编程语言),这些特性使json成为理想的数据交换语言。json序列化是指将对象转换成json字符串,json反序列化是指将json字符串还原成对象。

json数据结构    

        json简单来说就是javascript中的对象和数组,通过这两种数据结构就可以表示各种复杂的结构。
对象:对象在json中表示为大括号“{}”括起来的内容,数据结构为{key:value,key:value,...}的键值对的结构。在面向对象中,key为对象的属性,vlaue为对应属性的值。
数组:数组在json中表示为中括号“[]”括起来的内容,数据结构为["java","javascript","vb",...],取值方式和所以语言一样,使用索引获取,字段的值可以是数字,字符串,数组,对象。

C#使用json序列化有几种方式

  • 使用System.Text.Json(微软自带)
  • 使用Newtonsoft.Json(引用Newtonsoft.Json.dll)
  • System.Runtime.Serialization.Json(以数据流为中介)
  • Nancy(包)
使用System.Text.Json
      #region using System.Text.Jsonprivate static string ObjectToStringOne(Object obj){string str = System.Text.Json.JsonSerializer.Serialize(obj);return str;}private static T StringToObjectOne<T>(string str){T obj = System.Text.Json.JsonSerializer.Deserialize<T>(str);return obj;}#endregion
使用Newtonsoft.Json
      #region using NewTonsoft.Jsonprivate static string ObjectToStringTwo(Object obj){string str = Newtonsoft.Json.JsonConvert.SerializeObject(obj);return str;}private static T StringToObjectTwo<T>(string str){T obj = Newtonsoft.Json.JsonConvert.DeserializeObject<T>(str);return obj;}#endregion
获取序列化字符串中某个字段
using Newtonsoft.Json.Linq;
jsonStr={"resCode":0,"resMeg":"空闲","data":[{"parkName": "A停车场","freeSpaceNum":72}]}
JObject obj = JObject.Parse(jsonStr);
string resMeg= obj["resMag"].ToString(); // 获取resMeg字段的值
string freSpaceNum = obj["data"][0]["freSpaceNum"].ToString();

参考:

C#中 Json序列化与反序列的几种方法_c# json序列化-CSDN博客

http://www.lryc.cn/news/271335.html

相关文章:

  • Java——ArraryList线程不安全
  • 基于Java SSM框架实现健康管理系统项目【项目源码】
  • PostgreSQL16.1(Windows版本)
  • 使用nodejs对接arXiv文献API
  • mac 安装pyaudio
  • k8s学习 — 各章节重要知识点
  • go slice源码探索(切片、copy、扩容)和go编译源码分析
  • 电影“AI化”已成定局,华为、小米转战入局又将带来什么?
  • 小程序for循环中key值的作用?
  • 深入理解Dockerfile —— 筑梦之路
  • Vue3 魔法:轻松删除响应式对象的属性
  • python命令大全及说明,python命令大全下载
  • Flink1.17实战教程(第五篇:状态管理)
  • ES慢查询分析——性能提升6 倍
  • [NAND Flash 4.3] 闪存的物理学原理_NAND Flash 的读、写、擦工作原理
  • 海豚调度 Dolphinscheduler-3.2.0/DolphinScheduler-3.1.9 离线部署 伪集群模式
  • 4.33 构建onnx结构模型-Expand
  • LeetCode——1599. 经营摩天轮的最大利润
  • 从 MySQL 的事务 到 锁机制 再到 MVCC
  • PostGreSQL远程连接
  • CSS 缩减顶部动画
  • 开源掌机是什么?
  • 基于Wenet长音频分割降噪识别
  • mysql基础-表操作
  • MySql——1146 - Table‘mysql.proc‘doesn‘t exit是这个
  • 玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 代码下载(1)
  • 开源预约挂号平台 - 从0到上线
  • Vue3的proxy
  • Vue Router的介绍与引入
  • StratifiedKFold解释和代码实现