一、JSON(JavaScript Object Notation)
1、JSON起源
JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式,由Douglas Crockford在2001年提出,它的设计目标是把数据格式简单化,具有良好的可读性,同时也方便程序读取和生成数据。与XML格式相比,JSON格式更为简单明了,尤其适用于Web应用程序的数据传输。
2、JSON数据结构
JSON数据结构由键值对组成,键值对之间用逗号“,”分隔,键值对之间用“:”分隔。JSON支持的数据类型有字符串、数字、布尔值、数组、对象和null。
{ "name": "张三", "age": 22, "isMarried": false, "city": ["北京", "上海"], "education": { "school": "清华大学", "major": "计算机科学与技术" }, "isStudent": null }
3、使用JSON
在JavaScript中,可以用eval()方法将JSON字符串转换为JavaScript对象,也可以使用JSON.parse()方法将JSON字符串转换为JavaScript对象。而在其他编程语言中,也可以使用相应的解析器将JSON字符串解析为相应的数据类型。
//将JSON字符串转换为JavaScript对象 var jsonData = '{"name": "张三", "age": 22}'; var objData = JSON.parse(jsonData);
二、XML(eXtensible Markup Language)
1、XML起源
XML(eXtensible Markup Language,可扩展标记语言)是一种用于存储和交换数据的文本格式,由W3C在1998年发布。与HTML相似,XML也使用标签来描述数据,但XML的标签不是预定义的,而是由用户自定义的。XML在传输和存储数据时具有良好的跨平台性和互操作性。
2、XML数据结构
XML由标记和文本组成,XML的标记分为开始标记、结束标记和单一标记。开始标记和结束标记成对出现,标记之间包括文本、其他标记或者空格等。所有的标记必须是嵌套的,而且不能有交叉,每个标记都必须被正确地打开和关闭。
<student> <name>张三</name> <age>22</age> <isMarried>false</isMarried> <city>北京</city> <city>上海</city> <education> <school>清华大学</school> <major>计算机科学与技术</major> </education> <isStudent>null</isStudent> </student>
3、使用XML
在Web开发中,可以使用XMLHttpRequest对象发送XML格式的数据,也可以使用DOM解析器将XML字符串解析为DOM树,然后对DOM树进行操作。在其他编程语言中,也可以使用相应的解析器将XML字符串解析为相应的数据类型。
//使用XMLHttpRequest对象发送XML格式的数据 var xhr = new XMLHttpRequest(); xhr.open("POST", "url", true); xhr.setRequestHeader("Content-type", "application/xml"); xhr.send("<student><name>张三</name><age>22</age></student>"); //使用DOM解析器解析XML字符串 var parser = new DOMParser(); var xmlDoc = parser.parseFromString("<student><name>张三</name><age>22</age></student>", "text/xml");
三、YAML(YAML Ain't Markup Language)
1、YAML起源
YAML(YAML Ain't Markup Language,YAML不是标记语言)是一种人类友好的数据序列化格式,由Clark Evans在2001年发布。YAML的设计目标是弥补XML的复杂性和JSON的不足,它的语法简单,可读性强,支持注释,同时还支持对象、数组、布尔值、null和日期等数据类型。
2、YAML数据结构
YAML使用缩进来表示层级关系,使用“:”来表示键值对的关系。YAML支持的数据类型有字符串、数字、布尔值、日期、数组、对象和null。YAML的注释使用“#”开头,直到行末为止,可以注释任何内容。
#学生信息 name: 张三 age: 22 isMarried: false city: - 北京 - 上海 education: school: 清华大学 major: 计算机科学与技术 isStudent: null
3、使用YAML
在其他编程语言中,可以使用相应的解析器将YAML字符串解析为相应的数据类型,也可以使用YAML库将YAML字符串转换为相应的数据类型。
//将YAML字符串转换为JavaScript对象 var yamlData = "name: 张三\nage: 22"; var objData = jsyaml.safeLoad(yamlData);
四、CSV(Comma-Separated Values)
1、CSV起源
CSV(Comma-Separated Values,逗号分隔值)是一种常用的简单文件格式,它用逗号分隔数据,每行数据表示一个记录,多行数据组成一个表格。CSV格式简单、易于使用和存储,常用于电子表格和数据库的导入导出。
2、CSV数据结构
CSV格式中,每个记录占据一行,每个字段用逗号隔开。如果字段中包含逗号,那么需要使用双引号括起来,双引号中的逗号不作为分隔符。如果字段中包含双引号,那么需要使用两个双引号代替。
姓名,年龄,性别,城市 "张三",22,"男","北京" "李四",24,"女","上海" "王五",20,"男","广州"
3、使用CSV
在其他编程语言中,可以使用相应的解析器将CSV字符串解析为相应的数据类型,也可以使用CSV库将CSV字符串转换为相应的数据类型。
//将CSV字符串转换为JavaScript对象 var csvData = '姓名,年龄,性别,城市\n"张三",22,"男","北京"'; var objData = Papa.parse(csvData, {header: true});可以看出,每个数据交换格式都有其独特的特点和优缺点,应根据实际情况选择合适的数据交换格式。