JSON:
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。JSON跟XML一样是一种是数据格式。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速率)。
JSON的特点:
- JSON 是轻量级的文本数据交换格式
- JSON 独立于语言 JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON解析器和 JSON 库支持许多不同的编程语言
- JSON 具有自我描述性,更易理解
JSON语法规则:
数据在键值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
JSON 名称/值对
JSON 数据的书写格式是:名称/值对。
名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间
用冒号隔开:"firstName":"John"
JSON值可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null
实践:
先准备一份文本文件:Skills.txt
[
{"Id":1,"Name":"九阴白骨爪","Damage":"100"},
{"Id":2,"Name":"降龙十八掌","Damage":"200"},
{"Id":3,"Name":"万雷天牢引","Damage":"300"},
]
在Skill.cs中定义属性
internal class Skill
{
public int Id { get; set; }
public string Name { get; set; }
public int Damage { get; set; }
}
之后还要安装JSON的工具来解析,可以在JSON官网中寻找对应的解析工具,这里选择了Json.NET,在依赖项中右键选择管理NuGet程序包搜索Json.NET即可安装。
最后调用并输出
internal class Program
{
static void Main(string[] args)
{
Skill[] a = JsonConvert.DeserializeObject<Skill[]>(File.ReadAllText("Skills.txt"));
foreach(Skill s in a)
{
Console.WriteLine(s.Id+","+s.Name+","+s.Damage);
}
}
}
结果:
以上是一种反序列化操作,下面再进行一次序列化
Skill skill = new Skill();
skill.Id = 123;
skill.Name = "KLZK";
skill.Damage = 789;
string str = JsonConvert.SerializeObject(skill);
Console.WriteLine(str);