JSON的基本认识

    今天我想描述的JSON(也叫JavaScript对象表示法)是只针对于JavaScript而言所写,但有一个点是你需要知道,就是JSON并非只属于JavaScript,目前很多编程语言也能使用。JSON是一种数据格式而非编程语言。

JSON的语法可以用三种类型的值表示

1.简单值(字符串、数字、布尔值、null)

{
"title":"helloWorld", // JSON字符串尽可能用""表示,勿用单引号'',不然可能会出现语法错误
"name":"张三",
"age":22,
"type":true,
"date":null,
"test":undefined 

} 

注:上面代码中"test":undefined 经过JSON的各种操作,都会被剔除掉,所以说JSON不支持undefined

2.对象

{
"name":"张三",
 "course":{
     "title":"Chinese",
     " time":"2020-3-4"    
 }
}

注:上面JSON对象的表示与JavaScript对象字面量表示的区别有二:其一,JavaScript需要声明变量(let/var),其二,JavaScript结束后最后需要;表示

3.数组

[
  {
      "name":"jean",
      "age":18   
  } ,
  {
      "name":"chee",
      "age":21  
  } , 
 {
      "name":"lucky",
      "age":44   
  } 
]

JSON数组遍历(JSON数组拥有JavaScript对数组操作的功能,如arr.push.....)

 let a=[
  {
      "name":"jean",
      "age":18   
  } ,
  {
      "name":"chee",
      "age":21  
  } , 
 {
      "name":"lucky",
      "age":44   
  } 
];
// 第一种方法
for(let s=0;s<a.length;s++){
    console.log(a[s].name);
} 
// 第二种方法
for(let item in a){
    console.log(a[item].name);
}  

JavaScript对象与JSON的相互转化

(1)定义一个JavaScript对象

let  js={
    title:"hello",
    course:["高数","kiry" ]  ,
   school:{
         name:"college",
        location:"North"
  }
} ;

(2) 如何获取数据

  查询title:js.title

  查询第一门课程:js.course[0]

  查询学校的地址:js.school.location

(3)JavaScript对象转化为JSON对象let jsonObj=JSON.stringify(js);

 let jsonObj=JSON.stringify(js);
console.log(jsonObj);
// 结果{"title":"hello","course":["高数","kiry"],"school":{"name":"college","location":"North"}}


// 第一种写法   stringify 中第二项表示过滤器,过滤出只有["title","course"]的结果
 let jsonObj=JSON.stringify(js,["title","course"]); 
 console.log(jsonObj); // 结果{"title":"hello","course":["高数","kiry"]} 


// 第二种写法stringify 中第三项表示 字符串缩进  数值表示(max为10)超过10 ,默认为10
let jsonObj=JSON.stringify(js,["title","course"],4); 
console.log(jsonObj);
//  结果
//{
//    "title": "hello",
//    "course": [
//        "高数",
//        "kiry"
//    ]
//}

// stringify 中第三项表示 字符串缩进  字符串表示

let jsonObj=JSON.stringify(j,null,"***");
console.log(jsonObj);

 //{
 //***"title": "hello",
 //***"course": [
 //******"高数",
 //******"kiry"
 //***],
 //***"school": {
 //******"name": "college",
 //******"location": "North"
 //***}
 //}


 

(4)JSON对象转化为JavaScript对象

let recover=JSON.parse(jsonObj);
console.log(recover);

tip


 目前在项目开发中,JSON常用于前后端对接时,交互数据所用

原文地址:https://www.cnblogs.com/Jeanchjy/p/12560175.html