第一节、JSON【可以转为JS对象的字符串】
JSON(JavaScript Object Notation, JS对象简谱),能够被转为JS对象的字符串
应用场景:数据传递 【前后端的数据的传递】
JSON中常见的API:
JSON转JS对象:JSON.parse(str)
//后端给回来的JSON
let str ='{"movies":[{"id":"123","title":"测试电影","actor":"周星驰吴孟达朱茵"},{"id":"456","title":"测试电影02","actor":"周星驰吴孟达朱茵"}]}';
// console.log(JSON.parse(str));
//在控制台打印每一部电影的信息【页面的渲染】
let allMovie = JSON.parse(str);
let allMovieData = allMovie.movies; //取出所有的电影信息 【数组】
allMovieData.forEach(element => { //每一个element表示1个电影
console.log(element.id,element.title,element.actor);
//提取信息 --生成HTML代码 -- 放在页面上【页面的渲染】
});
JS对象转为JSON:JSON.stringify(obj);
console.log(JSON.stringify(obj));
第二节、地址栏传递参数
基本语法:
http://xxxx ? 参数名=参数值&参数名=参数值
注意:1、地址栏传递参数只能传递字符串
2、浏览器会将地址栏进行编码
传递简单类型:
let href02 = './02-地址栏传参02.html?id='+id+"&"+"name="+name;
解析:
1、decodeURI() 对href地址栏解码—主要解决中文 对象 数组 浏览器给你默认编码的问题
2、字符串.split(“分隔符”) 按照指定的分隔符对字符串进行切割,结果放在1个数组中
function getParam(){
//1.获取地址栏信息 参数在地址栏放着的
//地址栏传递参数 需要解码
let str = decodeURI(location.href);
//2.参数都在?后面
let param = str.split("?")[1];// 字符串.split("分隔符") 按照指定的分隔符进行字符串的切割 切成1个数组
console.log(param);
let param02 = param.split("&");
param02.forEach(function(element){//element 格式 参数名=参数值
console.log(element.split("=")[1]); //想要值 按照=切割 值在第二个元素上
});
}
传递数组、对象、数组对象
注意:1、需要将这些数据转为JSON字符串
let json = JSON.stringify(obj);
2、传递过去后,将参数转回对象/数组
console.log(JSON.parse(element.split("=")[1]));