JSON(JavaScript 对象简谱:JavaScript Object Notation) 是一种轻量级的数据交换格式, 易于人阅读和编写。同时也易于机器解析和生成。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构: “名称/值”对的集合。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 值的有序列表。在大部分语言中,它被理解为数组(array)
JSON具有以下这些形式: 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
C#使用JSON数据
数据存储(序列化):将C#的数据格式,转化JSON字符串, 存储或传输
数据使用(反序列化):将JSON字符串中存储的数据,转化为C#可用的数据格式,实现代码逻辑
序列化是将一个对象转换成字节流以达到将其长期保存在内存、数据库或文件中的处理过程。它的主要目的是保存对象的状态以便以后需要的时候使用。与其相反的过程叫做反序列化。
序列化(程序数据 ->JSON字符串)
反序列化(JSON字符串 ->程序数据)
[Serializable]
public class Users { public string Name; public string Password; }
[NoSerializable]
private string sex;
public string Sex{ get { return Sex; } set { Sex = value; }}
支持的数据结构(c#对比JSON)
数字型:short,int,long,float,double
字符串(string):" ac","你好“,‘ab'
布尔(bool):true,false
null:null
数组(列表):[值1,值2]
对象(字典):{”键1“:“值1” ,”键2“:“值2”}
字符含义
大括号组:对象,字典
中括号组:数组,列表
冒号:赋值,左侧是变量或键名称,右侧为值
逗号:元素分隔符,最后一个元素后,没有逗号
双引号组:修饰变量(可以不加),表示string数据类型
单引号组:同双引号组