Javascript JSON解析

52 阅读2分钟

JSON语法

是一种轻量级的文本数据交换格式

JSON语法规则

  1. 数据在名称/值对中,值(value)可以是双引号括起来的字符串(string)、数值(整数或浮点数)(number)、布尔值(true、false)、 null、对象(object)或者数组(array),它们是可以无限嵌套(限制5级内,深不了解析)。
  2. 数据之间由逗号 , 分隔
  3. 使用斜杆 \ 来转义字符
    \\  -->  \
    \'  -->  '
    \"  -->  "
    
  4. 对象:大括号{}保存的对象是一个无序的名称-值对集合。一个对象以左括号 { 开始, 右括号 } 结束。每个"键"后跟一个冒号:,名称/值对使用逗号 ,分隔。
  5. 数组:中括号[]保存的数组是值(value)的有序集合。一个数组以左中括号开始,右中括号结束,值之间使用逗号 , 分隔。
    JSON对象示例
{
  "name": "张三",
  "age": 30,
  "isEmployed": true,
  "skills": ["JavaScript", "HTML", "CSS"],
  "address": {
    "street": "123 街道",
    "city": "北京",
    "zipcode": "100000"
  }
}

JSON字符串示例

'{
  "name": "张三",
  "age": 30,
  "isEmployed": true,
  "skills": ["JavaScript", "HTML", "CSS"],
  "address": {
    "street": "123 街道",
    "city": "北京",
    "zipcode": "100000"
  }
}'

JSON字符串中的键和字符串值都必须使用双引号。 JavaScript对象示例

let user = {
  name: "张三",
  age: 30,
  isEmployed: true,
  skills: ["JavaScript", "HTML", "CSS"],
  address: {
    street: "123 街道",
    city: "北京",
    zipcode: "100000"
  }
};

在 JavaScript 对象中,键可以使用点表示法访问,常用JSON.parse将json对象转换为js对象,方便使用.访问对象,例如 user.name
JSON字符串和JavaScript对象的转换
JSON对象有两个方法:

  • stringify() :将JavaScript序列化为JSON字符串
  • parse() :将JSON解析为原生JavaScript对象,注意js对象可以嵌套,嵌套的依然是js对象。
let personInfo={
    name:"Surpass",
    age:28,
    location:"Shanghai",
    from:"Wuhan",
    to:"Nanjing"
};
let jsonText=JSON.stringify(personInfo);
let jsonObj=JSON.parse(jsonText);
console.log(jsonText); // {"name":"Surpass","age":28,"location":"Shanghai","from":"Wuhan","to":"Nanjing"}
console.log(jsonObj); // {name: 'Surpass', age: 28, location: 'Shanghai', from: 'Wuhan', to: 'Nanjing'}