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.Json
      private 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.Json
      private 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
获取序列化字符串中某个字段
cs 复制代码
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博客

相关推荐
云水一下2 小时前
零基础玩转bWAPP靶场(四十五):XSS - Reflected (JSON)
web安全·json·xss·bwapp·reflected
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 天前
Spring‑AI Document 对象 JSON 字段详解
人工智能·spring·json
sunywz1 天前
【从零搭建物联网智能充电桩系统】2、自定义二进制协议:设备为什么不用 JSON?
python·物联网·json
灵析表格1 天前
灵析表格手机号处理函数深度分析报告
前端·网络·json·wps·灵析表格·excel公式盒子
猿长大人2 天前
C# | JSON 序列化中的多态接口处理:基于 Attribute 实现精准 $type 控制
c#·json
消失的旧时光-19432 天前
第六篇:Redis Hash——一个用户对象应该保存成 JSON,还是保存成 Hash?
redis·json·哈希算法
SEO_juper2 天前
2026年Schema自动注入实战:用Python批量给1000个页面加上JSON-LD,AI引用率实测提升38%
人工智能·python·json·seo·独立站
Wang's Blog2 天前
AI Agent白手起家37: LangChain 输出解析器实战:文本、JSON、XML 与 Pydantic
xml·langchain·json
灵析表格2 天前
json_ObjectToKV 函数深度研究报告
json·excel·wps·灵析表格·excel公式盒子
wtsolutions2 天前
JSON 怎么导入 WPS?怎么转换成 WPS 表格?WPS 怎么打开 JSON?完整教程
json·wps