说到JSON,我们最好先来看一下它的定义,了解一下他大概是一个怎样的东西。
- json的定义:
JSON(JavaScriptObject Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 (来自百度百科)
所以说,json就是一种可以用来传递数据的特定的文本格式,因为其易于解析和生成,并且轻量级的特点,得到了广泛的应用。
那么首先说解析,当得到一个JSON数据时,怎样将其解析为我们常用的obj文件呢--------使用JSON.parse()方法,如下:
var obj = JSON.parse(json); //obj为得到的obj文件,json为要转化的json文件 |
但是JSON并不是简单的一层结构,是可以在JSON文件中嵌套另一个JSON文件的,当遇到具有嵌套关系的JSON文件时,再单纯的使用上面的JSON.parse()方法就行不通了,这时候我们就要对整个JSON文件进行遍历,将其中的所有JSON文件都进行解析,实现方法如下:
function printValues(obj){ for(let k in obj){ if(obj[k] instanceof obj){ printValues(obj[k]); }else{ document.write(obj[k]+"<br>"); } } } |
当得到一个obj格式的文件时,又怎样转换成JSON格式呢,使用JSON.stringify()方法,如下:
var json = JSON.stringify(obj); // obj是目前的文件,json是得到的JSON文件。 |
同时,使用的JSON的解析和生成的方法还可以实现json的深拷贝,实现代码如下:
let json1 = {a,b,c,f,r,d,f,e}; let json2 = JSON.parse(JSON.stringify(json1)); |