领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

你真的会用js中的JSON(一)?

nixiaole 2024-11-18 15:31:23 知识剖析 21 ℃

前言:

啥?JSON谁不会用啊,我天天在用,不就是JSON.stringify()把一个js对象转成json字符串;JSON.parse()把一个js字符串转成js对象么~~。客官,莫急,先把刀收起~,且听我细说,要是这么简单,还写这个干啥,你说是不。

的确,JSON工具也只有这两个方法,是不复杂,不过要想用来这两个方法,还是得下一点工夫滴~。咱先说一下json的基本知识和语法吧

若有基础的童鞋可直接阅读下篇文章:

你真的会用js中的JSON(二)?

json基本知识

json全称:JavaScript Object Notation。是一种数据交换的文本格式,2001年由 Douglas Crockford 提出,目的是取代繁琐笨重的 XML 格式。额~~ 过于简单,直接进入语法吧~

json语法

  • 数据在名称/值对中
  • 每个数据之间用逗号分隔
  • 大括号用于保存对象
  • 中括号用于保存数组

注意几个点:

  1. 在js中,只能是普通对象或者是数组当做值,函数,正则,日期对象都不可以
  2. 普通数据也只能是字符串,数值,布尔,null当做值,undefined不可以,特殊的数值如:NaN,Infinity等都不可充当值
  3. 键必须在双引号里面,单引号不可以。字符串的值也只能放在双引号里,单引号也不可以
  4. 数组或者对象最后一个成员不能加逗号
// 以下都是合法的
['true', '1', '张三']

{"name":"张三","age":10,"address":"北京"}

[
  {"name":"张三","age":10,"address":"北京"},
  {"name":"李四","age":20,"address":"上海"},
  {"name":"王五","age":35,"address":"深圳"}
]

{"cities":["北京","上海","深圳"]}

{"name":"","address":null,"cities":[],"info":{}} // ''、null、[]、{} 也是合法的 
// 下面的不合法
{"name": "张三", "getName": function () {}} // 不能有函数

{name: "张三", age: 10} // 键名必须放在双引号中

["a", "b", "c",] // 最后一个成员不能加逗号

JSON对象

进入正题,看一下js给我们提供的JSON对象的用法吧,它主要是通过两个方法来处理json数据的~

JSON.stringify()JSON.parse()

JSON.stringify()

stringify()方法是把一个对象转成json字符串,且以后可以通过parse()方法还原成对象

// 把普通的对象转成json字符串
var person = {
  name: '王小五',
  age: 10,
  city: '北京'
}
JSON.stringify(person) // {"name":"王小五","age":10,"city":"北京"}

// 把数组转成json字符串
var array = [1, '', false, 'true']
JSON.stringify(array) // [1,"",false,"true"]

// 把原始数据转成json字符串
JSON.stringify('to json') // "to json"
JSON.stringify(1)  // "1"
JSON.stringify(false)  // "false"

JSON.parse()

parse()方法是把一个json字符串转成js对象

var json = '{"name":"王小五","age":10,"city":"北京"}'
var obj = JSON.parse(json)
console.log(obj.name) // '王小五'

由于篇幅有限,本期分成两篇文章,下一篇文章介绍JSON的更高级用法。

你真会用js中的JSON(二)?


关注我,` 知码前端 ` 获取更多知识~~

Tags:

最近发表
标签列表