C#高级 08Json操作

1.概念

  • Json是存储和交换文本信息的语法。类似于XML。
  • Json比XML更小、更快、更易解析。Json与XML一样是一种数据格式。
  • Json是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。Json采取完全独立于语言的文本格式,
    但是也使用了类似于C语言的习惯。这些特性使Json成为了理想的数据交换语言。易于人阅读和编写,同时也
    易于机器解析和生成(网络传输)

实例如下:

javascript 复制代码
{
  "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

javascript 复制代码
{
	"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

csharp 复制代码
internal class Skill
{
    public int id { get; set; }
    public string name { get; set; }
    public int damage { get; set; }
}

Hero.cs

csharp 复制代码
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包

主要处理逻辑

csharp 复制代码
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();
    }
}
相关推荐
weixin_4997715512 分钟前
C++中的组合模式
开发语言·c++·算法
初级代码游戏13 分钟前
套路化编程 C# winform 自适应缩放布局
开发语言·c#·winform·自动布局·自动缩放
_waylau16 分钟前
鸿蒙架构师修炼之道-架构师的职责是什么?
开发语言·华为·harmonyos·鸿蒙
2的n次方_27 分钟前
CANN Ascend C 编程语言深度解析:异构并行架构、显式存储层级与指令级精细化控制机制
c语言·开发语言·架构
java干货1 小时前
为什么 “File 10“ 排在 “File 2“ 前面?解决文件名排序的终极算法:自然排序
开发语言·python·算法
_F_y1 小时前
C语言重点知识总结(含KMP详细讲解)
c语言·开发语言
毕设源码-郭学长1 小时前
【开题答辩全过程】以 基于python的二手房数据分析与可视化为例,包含答辩的问题和答案
开发语言·python·数据分析
无小道1 小时前
Qt——常用控件
开发语言·qt
大空大地20261 小时前
流程控制语句--switch多分支语句使用、while循环语句的使用、do...while语句、for循环
c#
aini_lovee2 小时前
MATLAB基于小波技术的图像融合实现
开发语言·人工智能·matlab