JSON

108 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

什么是JSON

JSON的全称为JavaScript Object Notation,中文为JavaScript 对象表示法。是一种轻量级的、与语言无关的存储和交换文本信息的语法,或者说是一种数据交换格式,类似XML,通常用于和服务端交换数据。

JSON数据类型
  • 字符串:必须写在双引号中{"name1":"zhangsan"}
  • 数字:必须是整数或浮点数{"height":180}
  • 对象:{"hobbies":{"hobbies1":"running","hobbies2":"reading"}}
  • 布尔值:{"isman":true}
  • 数组:{"like":["cat","dog","dove"]}
  • null:{"haveCat":null}
JSON的数据格式
  • 以对象形式存储:{“键名”:“键值”,“键名”:“键值”,......},,JSON的数据被大括号包裹,键名必须为字符串,键值为JSON数据类型。
  • 以数组类型存储:[value1,value2,value3,......],value值为JSON数据类型。
对JSON对象的操作

获取值

let Obj = {
  "name":"zhangsan",
  "age":33,
  "height":183,
  "hobbies":{
    "hobby1":"running",
    "hobby2":"reading"
  }
}
//方式一
let name = Obj.name
let hobby1 = Obj.hobbies.hobby1
//方式二
let name = Obj["name"]
let hobby1 = Obj.hobbies["hobby1"]

修改值

//方式一
Obj.name = "lisi"
Obj.hobbies.hobby1 = "eatting"
//方式二
Obj["name"] = "lisi"
Obj.hobbies["hobby1"] = "eatting"

删除对象属性

//方式一
delete Obj.name
delete Obj.hobbies.hobby1
//方式二
delete Obj["name"]
delete Obj.hobbies["hobby1"]
对JSON数组的操作

获取值

let Obj = {
  "name":"zhangsan",
  "age":33,
  "height":183,
  "hobbies":["running","reading","eatting"]
}
//方法一
let hobby1 = Obj.hobbies[0]
//方法二
for(i in Obj.hobbies) {
  let hobby = Obj.hobbies[i]
  console.log(hobby)
}
//方法三
for(i = 0;i < Obj.hobbies.length;i++) {
  let hobby = Obj.hobbies[i]
  console.log(hobby)
}

修改值

Obj.hobbies[0] = "playing"

删除数组元素

delete Obj.hobbies[0]
JSON的数据转换
  • 字符串转换为JavaScript对象

    parse():需要转换的数据必须在引号中,不然会报错;不建议在JSON中使用函数。

let Obj = {
  "name":"zhangsan",
  "age":33,
  "height":183,
  "hobbies":["running","reading","eatting"]
}
let newObj = JSON.parse('Obj')

​ eval():是全局对象的一个属性,尽量不要使用,他会使用与调用者相同的权限执行代码,如果被恶意劫持并修改,可能会导致在计算机中执行恶意代码。

let obj = {"name":"zhangsan","age":33}

let newObj = eval("obj")

​ Function():

let obj = {"name":"zhangsan","age":33}
let json
function strToJson(obj) {
  json = (new Function(obj))()
  return json
}
  • JavaScript对象转换为字符串

    stringify():

let obj = {"name":"zhangsan","age":33}
let arr = ["zhangsan","lisi","wangwu"]

let newObj = JSON.stringify(obj)
let nreArr = JSON.stringify(arr)