JSON基础
前言
今天,我的JSON学习算是告一段落了,不过只是入门阶段,我只是掌握了一些基础语法,下面是我的学习笔记,有兴趣的小伙伴可以看一看,这不是一篇教程贴,但是如果你有基础的话,应该很容易看得懂,我只是想分享一下我的所学。
JSON在线工具
一个可以在线编写JSON的网站
JSON是什么
JSON,全称JavaScript Object Notation,即JavaScript对象标记法
JSON是存储和交换文本信息的语法,类似 XML
JSON是一种轻量级的、基于文本的、可读的格式,语法格式参考JavaScript对象,格式永不升级
JSON语法规则
数组(Array)用方括号[]
表示,存放值
对象(Object)用大括号{}
表示,存放名称/值
名称/值对(name/value)组合成数组和对象
名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象、数组。
1 | { |
字符串规则
用英语双引号括起来
字符串中不能单独出现双引号"
和反斜杠\
如需输入双引号或反斜杠,需要在其前面加上一个\,如 你喜欢苹果\\香蕉
JSON的解析与生成
1 | JSON.parse() 将符合JSON规则的字符串转换为对象 |
解析
是指将JSON字符串转化为Javascript对象的过程
1 | JSON.parse(name,value) |
1 | var str = '{"name":"John","age":19}'; |
序列化
是指将Javascript值转化为JSON字符串的过程
1 | JSON.stringify(value,replacer,space) |
1 | var obj = { |
1 | var obj = { |
JSON和XML的转化
官网很慢,我们在下面这个网站下载jQuery文件
在下面这个网站下载jquery.json2xml.js和jquery.xml2json.js两个组件
先引入下载的三个js文件,然后就可以使用了,引入顺序很重要
1 | <script src="jquery-3.4.1.min.js"></script> |
将XML字符串转化为JSON字符串的过程
1 | var str = "<root>"+ |
将Javascript对象转换为XML字符串的过程
1 | var obj = { |
GeoJSON和TopoJSON
下面这个网站,可以在线在地图上表示GeoJSON信息
GeoJSON和TopoJSON是符合JSON语法规则的两种数据格式,用于表示地理信息
- GeoJSON
GeoJSON用于表示地理空间信息,它的最外层是一个对象,对象可表示几何体(Geometry)、特征(Feature)、特征集合(FeatureCollection)
最外层的GeoJSON里可能包含多个子对象,每一个GeoJSON对象都有一个type属性,表示对象类型,有下面这些类型- Point 点
- MultiPoint 多点
- LineString 线
- MultiLineString 多线
- Polygon 面
- MultiPolygon 多面
- GeometryCollection 几何体集合
- Feature 特征
- FeatureCollection 特征集合
如果type值为Point、MultiPoint、LineString、MultiLineString、Polygon、MultiPolygon,对象必有变量coordinates
如果type值为GeometryCollection,对象必有变量geometries,其值是一个数组,数组每一项都是一个几何对象
如果type值为Feature,对象必有变量geometry,表示几何体其值为一个几何体对象。此特征对象还包含一个properties,表示特征,其值可以是任意JSON对象或者Null
1 | { |
1 | { |
- TopoJSON
TopoJSON是GeoJSON按拓扑学编码后的扩展形式
TopoJSON消除了冗余,相比TopoJSON文件较小
下面这个网站可以进行TopoJSON和GeoJSON格式的转换