C#高级 08Json操作
1.概念
- Json是存储和交换文本信息的语法。类似于XML。
- Json比XML更小、更快、更易解析。Json与XML一样是一种数据格式。
- Json是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。Json采取完全独立于语言的文本格式,
但是也使用了类似于C语言的习惯。这些特性使Json成为了理想的数据交换语言。易于人阅读和编写,同时也
易于机器解析和生成(网络传输)
实例如下:
{"employees":[{"firstName":"Bill","lastName":"Gates"},{"firstName":"George","lastName":"Bush"},{"firstName":"Thomas","lastName":"Carter"}]
}
2.什么是Json
- Json是轻量级的文本格式
- Json独立于语言
- Json具有自我描述性,更易于理解
- Json使用javaScript语法来描述数据对象,但是Json任然独立于语言和平台。Json解析器和Json库
支持许多不同的编程语言。
3.Json语法规则
- 数据在键值对中
- 数据由逗号分隔
- 花括号保存对象
- 中括号保存数组
4.Json官网
Json资料
5.Json文件读取
下面以Json文件的读取为例
Skill.txt
{"name":"扁鹊","maxHP":2000,"type":"法师","skillList":[{"id":2,"name":"技能1","damage":200},{"id":3,"name":"技能2","damage":255},{"id":4,"name":"技能3","damage":300}]
}
Skill.cs
internal class Skill
{public int id { get; set; }public string name { get; set; }public int damage { get; set; }
}
Hero.cs
internal class Hero
{public string name { get; set; }public int maxHP { get; set; }public string type { get; set; }public List<Skill> skillList { get; set; }
}
NuGet按照Json包

主要处理逻辑
internal class Program
{static void Main(string[] args){Hero hero = JsonConvert.DeserializeObject<Hero>(File.ReadAllText("Hero.txt"));Console.WriteLine(hero.name + "," + hero.type + "," + hero.maxHP);foreach (Skill s in hero.skillList){Console.WriteLine(s.id + ", " + s.name + " ," + s.damage);}Console.ReadKey();}
}
相关文章:
C#高级 08Json操作
1.概念 Json是存储和交换文本信息的语法。类似于XML。Json比XML更小、更快、更易解析。Json与XML一样是一种数据格式。Json是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。Json采取完全独立于语言的文本格式, 但是也使用了类似于C语言的习惯。这些特性使…...
封装uniapp签字板
新开发的业务涉及到签字功能,由于是动态的表单,无法确定它会出现在哪里,不得已封装模块。 其中涉及到一个难点就是this的指向性问题, 第二个是微信小程序写法, 我这个写法里用了u-view的写法,可以自己修改组…...
Mybatis行为配置之Ⅳ—日志
专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL Mybatis配置入门 Mybatis行为配置之Ⅰ—缓存 Mybatis行为配置…...
Java设计模式-外观模式
目录 一、影院管理项目 二、外观模式 (一)基本介绍 (二)原理类图 (三)解决影院管理 (四)注意事项和细节 (五)外观模式在MyBatis框架应用的源码分析 一…...
js+css实现颜色选择器
<!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>颜色选择器</title><style>.color-box {width: 50px;height: 50px;border: 1px solid #000;cursor: pointer;}</style> </head> <body><…...
Go语言中的包管理工具之Go Modules的使用
GoLang 中常用的包管理的方式 常用的有三种 Go PathGo VendorGo Modules 关于 Go Modules 1 ) 概述 Go的包管理,经过社区和官方的共同努力下,最终在百家争鸣后Go官方在 2018.8 推出了go 1.11版本中的Go Modules,并且很快成为一统江湖的包…...
【c/c++】指针例图基础详解
文章目录 指针变量内存指针详解例1例2练习&答案解析 指针变量内存 int main(){// 各类型变量占字节数printf("char: %d\n",sizeof(char)); // 1printf("short: %d\n",sizeof(short)); // 2printf("int: %d\n",sizeof(int)); // 4pri…...
TCP/IP的网络层(即IP层)之IP地址和网络掩码,在视频监控系统中的配置和应用
在给客户讲解我们的AS-V1000视频监控平台的时候,有的客户经常会配置错误IP地址的掩码和网关,导致出现一些网路问题。而在视频监控系统中,IP地址和子网掩码是用于标识网络中设备的重要标识符。IP地址被用来唯一地标识一个网络设备,…...
代码随想录刷题 | Day1
今日学习目标 一、基础 数组 array类 模板类vector 数组是存放在连续内存空间上的相同类型数据的集合。 数组可以方便的通过下标索引的方式获取到下标下对应的数据。 需要两点注意的是 数组下标都是从0开始的。 数组内存空间的地址是连续的 而且大家如果使用C的话&…...
查看IOS游戏FPS
摘要 本篇技术博客将介绍如何使用克魔助手工具来查看iOS游戏的帧率(FPS)。通过克魔助手,开发者可以轻松监测游戏性能,以提升用户体验和游戏质量。 引言 在iOS游戏开发过程中,了解游戏的帧率对于优化游戏性能至关重要…...
挑战Python100题(7)
100+ Python challenging programming exercises 7 Question 61 Print a unicode string "hello world". Hints: Use ustrings format to define unicode string. 打印一个unicode字符串“helloworld”。 提示:使用u“字符串”格式定义unicode字符串。 Solution…...
HarmonyOS自学-Day4(TodoList案例)
目录 文章声明⭐⭐⭐让我们开始今天的学习吧!TodoList小案例 文章声明⭐⭐⭐ 该文章为我(有编程语言基础,非编程小白)的 HarmonyOS自学笔记,此类文章笔记我会默认大家都学过前端相关的知识知识来源为 HarmonyOS官方文…...
LTPI协议的理解——2、LTPI实现的底层架构
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 LTPI协议的理解——2、LTPI实现的底层架构 前言一、体系结构三、实现细节四、物理接口信号传输方法总结 前言 前面讲了LTPI的定义和大概结构,接下来继续理解LTPI…...
CentOS 8.2 安装 Mysql 5.7.26(单机)
Mysql二进制包: mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz 1、卸载旧环境 rpm -qa|grep mysql rpm -qa|grep mariadb rpm -e XXX.rpm --nodeps # 强制卸载rpm包 rm -rf /etc/my.cnf rm -rf /etc/mysql rm -rf /usr/local/mysql 2、安装依赖包 yum -y install libaio yum…...
Vue Tinymce富文本组件自定义带下拉框的操作按钮
想实现如下效果 首先在init方法中的props,toolbar属性增加一个自定义按钮 增加一个setup方法 代码 setup: function(editor) { editor.ui.registry.addSplitButton(myDateButton, {text: 日期时间,onAction: (_) > editor.insertContent(getJsMonthDay(getNowDat…...
YOLOv5算法进阶改进(10)— 更换主干网络之MobileViTv3 | 轻量化Backbone
前言:Hello大家好,我是小哥谈。MobileViTv3是一种改进的模型架构,用于图像分类任务。它是在MobileViTv1和MobileViTv2的基础上进行改进的,通过引入新的模块和优化网络结构来提高性能。本节课就给大家介绍一下如何在主干网络中引入MobileViTv3网络结构,希望大家学习之后能够…...
Java UDP
接收方 创建DatagramSocket实例并指定端口。创建DatagramPacket实例接收信息。调用DatagramSocket的receive()方法将接收信息并传递给DatagramPacket。通过DatagramPacket的getData()方法获取信息内容,getLength()方法获取长度。 package io.github.jast90.udp;im…...
Halcon阈值处理的几种分割方法threshold/auto_threshold/binary_threshold/dyn_threshold
Halcon阈值处理的几种分割方法 文章目录 Halcon阈值处理的几种分割方法1. 全局阈值2. 基于直方图的自动阈值分割方法3. 自动全局阈值分割方法4. 局部阈值分割方法5. var_threshold算子6 . char_threshold 算子7. dual_threshold算子 在场景中选择物体或特征是图像测量或识别的重…...
FB混合C语言编译
这是群友分享的方法,这里只是作为记录和分享。 有了这个功能,可以很方便的拷贝一下C或者C代码直接用到FB上。 既然是混合C语言编译,当然得有C的代码。比如随便去网上找两个排序:冒泡排序和选择排序,代码如下…...
【机器学习】深度学习概论(二)
五、受限玻尔兹曼机(Restricted Boltzmann Machine,RBM) 5.1 RBM介绍 示例代码: Python 编写了一个简单的 RBM 实现,并用一些假数据训练了它。然后,他展示了如何用 RBM 来解释用户的电影偏好,以…...
NoFences终极指南:免费开源桌面分区工具彻底解决Windows桌面混乱问题
NoFences终极指南:免费开源桌面分区工具彻底解决Windows桌面混乱问题 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 还在为杂乱的Windows桌面而烦恼吗࿱…...
PostgreSQL游标实战:大数据处理、分页优化与性能避坑指南
1. 项目概述:为什么我们需要关注PostgreSQL游标?在数据库应用开发中,尤其是处理海量数据时,我们常常会遇到一个经典难题:如何高效、安全地遍历一个包含数百万甚至上亿条记录的结果集?直接使用SELECT * FROM…...
软考高级信息系统项目管理师备考笔记-第14章项目沟通管理
第14章项目沟通管理备考知识点及历年真题 一、历年真题分布 2023年5月 选择题3分 案例6分 2023年11月 选择题3分 案例5分第一批、案例10分第二批 2024年5月 选择题3分 案例16分第一批 2025年5月 选择题2分 案例4分第一批、案例9分第二批 二、备考学习笔记 14.1 …...
基于Anylogic仿真的地铁换乘站客流瓶颈识别与疏导策略——以成都春熙路站为例
1. 为什么需要仿真技术解决地铁换乘站拥堵问题 每天早高峰挤地铁的朋友们一定深有体会,特别是像成都春熙路这样的换乘大站,站台上人挤人、通道里水泄不通的场景简直让人崩溃。作为成都地铁2号线和3号线的换乘枢纽,春熙路站日均客流量超过30万…...
通达信缠论分析插件:如何用开源工具实现智能技术分析
通达信缠论分析插件:如何用开源工具实现智能技术分析 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 缠论作为技术分析的重要理论体系,其复杂的线段划分和中枢识别让许多交易者望…...
WinMerge过滤器进阶:从基础规则到实战场景配置
1. WinMerge过滤器入门:从零开始理解规则配置 WinMerge作为一款老牌开源文件对比工具,其过滤器功能常常被低估。很多开发者只是用它来排除版本控制目录,但实际上它能做的远不止这些。我第一次接触WinMerge过滤器是在处理一个Java项目时&#…...
ISO14443协议扫盲:别再只盯着‘读卡号’,APDU才是智能卡应用的灵魂
ISO14443协议进阶指南:从读卡号到APDU指令深度解析 当你第一次把卡片贴近读卡器,看到屏幕上跳出那串UID号码时,那种成就感确实令人兴奋。但很快你会发现,这串数字就像一扇紧闭的大门——你知道门后藏着更多可能性,却找…...
深度解析:libiec61850开源库如何解决电力系统通信的三大核心挑战
深度解析:libiec61850开源库如何解决电力系统通信的三大核心挑战 【免费下载链接】libiec61850 Official repository for libIEC61850, the open-source library for the IEC 61850 protocols 项目地址: https://gitcode.com/gh_mirrors/li/libiec61850 在电…...
如何快速将STL转换为STEP:5个高效转换技巧指南
如何快速将STL转换为STEP:5个高效转换技巧指南 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp STL到STEP格式转换是3D设计和工程制造领域的关键桥梁,而stltostp正是解决…...
收藏!AI时代程序员的“避坑指南“与“财富密码“,小白也能轻松逆袭大模型开发!
文章反驳了AI将取代程序员的论调,指出程序员面临的是结构性冲击,初级岗位收缩但中高端岗位爆发式增长。AI将替代重复劳动,促使程序员向上迁移至系统架构设计等高价值岗位。AI岗位薪资远超行业平均水平,程序员通过拥抱AI技术&#…...
