ajax&json-w3school(2024,web开发基础

PHP 文件解释:

·将请求转换为对象,使用 PHP 函数 json_decode()。

·访问数据库,用所请求的数据填充数组。

·把数组添加到对象,使用 json_encode() 函数以 JSON 返回该对象。

<?php header("Content-Type: application/json; charset=UTF-8"); $obj = json_decode($_GET["x"], false); $conn = new mysqli("myServer", "myUser", "myPassword", "Northwind"); $result = $conn->query("SELECT name FROM ".$obj->$table." LIMIT ".$obj->$limit); $outp = array(); $outp = $result->fetch_all(MYSQLI_ASSOC); echo json_encode($outp); ?>

4.存储数据

在存储数据时,数据必须是某种具体的格式,并且无论您选择在何处存储它,文本永远是合法格式之一。

JSON 让 JavaScript 对象存储为文本成为可能。

把数据存储在本地存储中

//存储数据:

myObj = { name:“Bill Gates”, age:62, city:“Seattle” };

myJSON = JSON.stringify(myObj);

localStorage.setItem(“testJSON”, myJSON);

//接收数据:

text = localStorage.getItem(“testJSON”);

obj = JSON.parse(text);

document.getElementById(“demo”).innerHTML = obj.name;

5.XML和JSON

(1)类似 XML

• JSON 是纯文本

• JSON 具有“自我描述性”(人类可读)

• JSON 具有层级结构(值中存在值)

• JSON 可通过 JavaScript 进行解析

• JSON 数据可使用 AJAX 进行传输

(2)相比 XML 的不同之处

• 没有结束标签

• 更短

• 读写的速度更快

• 能够使用内建的 JavaScript eval() 方法进行解析

• 使用数组

• 不使用保留字

(3)为什么使用 JSON?

对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:

·使用 XML

读取 XML 文档

使用 XML DOM 来循环遍历文档

读取值并存储在变量中

Bill

Gates

Steve

Jobs

Elon

Musk

·使用 JSON

读取 JSON 字符串

用 eval() 处理 JSON 字符串

{“employees”:[

{ “firstName”:“Bill”, “lastName”:“Gates” },

{ “firstName”:“Steve”, “lastName”:“Jobs” },

{ “firstName”:“Elon”, “lastName”:“Musk” }

]}

(二)json语法

1.JSON 语法是 JavaScript 语法的子集

• 数据在名称/值对中

• 数据由逗号分隔

• 花括号容纳对象

• 方括号容纳数组

2. JSON 数据- 名称和值

JSON 数据写为名称/值对。

名称/值由字段名称构成,后跟冒号和值

JSON 名称需要双引号。而 JavaScript 名称不需要。

JSON – 求值为 JavaScript 对象

JSON 格式几乎等同于 JavaScript 对象。

在 JSON 中,键必须是字符串,由双引号包围,字符串方法时最外边用单引号括起:

'{ “name”:“Bill Gates” } '//JSON

在 JavaScript 中,键可以是字符串、数字或标识符名称:

{ name:“Bill Gates” }// JavaScript

3.JSON值

在 JSON 中,值必须是以下数据类型之一:

• 字符串

{ “name”:“John” }

• 数字

{ “age”:30 }

• 对象(JSON 对象)

{

“employee”:{ “name”:“Bill Gates”, “age”:62, “city”:“Seattle” }

}

• 数组

{

“employees”:[ “Bill”, “Steve”, “David” ]

}

• 布尔

{ “sale”:true }

• null

{ “middlename”:null }

外加其他有效的 JavaScript 表达式,包括:

• 函数

JSON 中不允许函数。

JSON.parse()时候如果您需要包含函数,请把它写作字符串。

稍后您可以通过eval(“(” +方法+ “)”)把它转换回函数:

把字符串转换为函数:

var text = ‘{ “name”:“Bill Gates”, “age”:“function () {return 62;}”, “city”:“Seattle”}’;

var obj = JSON.parse(text);

obj.age = eval(“(” + obj.age + “)”);

JSON.stringify() 函数将从 JavaScript 对象删除任何函数,包括键和值

如果您需要函数,在运行 JSON.stringify() 函数前,将函数转换为字符串

var obj = { “name”:“Bill Gates”, “age”:function () {return 62;}, “city”:“Seattle”};

obj.age = obj.age.toString();//先转换

var myJSON = JSON.stringify(obj);

document.getElementById(“demo”).innerHTML = myJSON;

应该避免在 JSON 中使用函数,函数会丢失它们的作用域

• 日期

var text = ‘{ “name”:“Bill Gates”, “birth”:“1955-10-28”, “city”:“Seattle”}’;

var obj = JSON.parse(text);

obj.birth = new Date(obj.birth);

或者您可以已使用 JSON.parse() 函数的第二个参数,被称为 reviver。

这个 reviver 参数是回调函数,在返回值之前,它会检查每个属性。

将字符串转换为日期,使用 reviver 函数:

var text = ‘{ “name”:“Bill Gates”, “birth”:“1955-10-28”, “city”:“Seattle”}’;

var obj = JSON.parse(text, function (key, value) {

if (key == “birth”) {

return new Date(value);

} else {

return value;

}});

document.getElementById(“demo”).innerHTML = obj.name + ", " + obj.birth;

在 JSON 中,不允许日期对象。JSON.stringify() 函数将把任何日期转换为字符串。

var obj = { “name”:“Bill Gates”, “today”:new Date(), “city”:“Seattle”};

var myJSON = JSON.stringify(obj);

document.getElementById(“demo”).innerHTML = myJSON;

• undefined

4.JSON对象

对象可以包含多个名称/值对:

'{ “firstName”:“John” , “lastName”:“Doe” } ’

这一点也容易理解,与这条 JavaScript 语句等价:

firstName = “John”

lastName = “Doe”

5.JSON数组

数组可包含多个对象:

'{

“employees”: [

{ “firstName”:“John” , “lastName”:“Doe” },

{ “firstName”:“Anna” , “lastName”:“Smith” },

{ “firstName”:“Peter” , “lastName”:“Jones” }

]

} ’

6.JSON 使用 JavaScript 语法来对值或者对象进行操作

7. JSON 文件

JSON 文件的文件类型是 “.json”

JSON 文本的 MIME 类型是 “application/json”

8. eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:

var txt = ‘{ “employees” : [’ +

‘{ “firstName”:“Bill” , “lastName”:“Gates” },’ +

‘{ “firstName”:“George” , “lastName”:“Bush” },’ +

‘{ “firstName”:“Thomas” , “lastName”:“Carter” } ]}’;

var obj = eval (“(” + txt + “)”);

还是推荐

var obj = JSON.parse(txt);

(三)json对象

1.对象语法

·JSON 对象被花括号 {} 包围。

·JSON 对象以键/值对书写。

·键必须是字符串,值必须是有效的 JSON 数据类型(字符串、数字、对象、数组、布尔或 ·null)。没有日期、undifine、函数类型,需要的话通过一些方式转化。

·键和值由冒号分隔。

·每个键/值对由逗号分隔。

2. 访问对象值

您可以通过使用点号(.)来访问对象值:

myObj = { “name”:“Bill Gates”, “age”:62, “car”:null };

x = myObj.name;

您也可以使用方括号([])来访问对象值:

myObj = { “name”:“Bill Gates”, “age”:62, “car”:null };

x = myObj[“name”];

3.遍历对象

您能够通过使用 for-in 遍历对象属性

在 for-in 循环中,请使用括号标记法来访问属性值:

myObj = { “name”:“Bill Gates”, “age”:62, “car”:null };

for (x in myObj) {

document.getElementById(“demo”).innerHTML += myObj[x];

}

4.嵌套的 JSON 对象

一个 JSON 对象中的值可以是另一个 JSON 对象。

myObj = {

“name”:“Bill Gates”,

“age”:62,

“cars”: {

“car1”:“Porsche”,

“car2”:“BMW”,

“car3”:“Volvo”

}

}

您能够通过使用点号和括号访问嵌套的 JSON 对象:

x = myObj.cars.car2;

//或者:

x = myObj.cars[“car2”];

5.修改值

您能够使用点号来修改 JSON 对象中的任何值:

myObj.cars.car3 = “Mercedes Benz”;

您也可以使用括号来修改 JSON 对象中的值:

myObj.cars[“car3”] = “Mercedes Benz”;

6.删除对象属性

使用 delete 关键词来删除 JSON 对象的属性:

delete myObj.cars.car1;

(四)json数组

1.作为 JSON 对象的数组

[ “Porsche”, “BMW”, “Volvo” ]

JSON 中的数组几乎与 JavaScript 中的数组相同。

在 JSON 中,数组值的类型必须属于字符串、数字、对象、数组、布尔或 null。

在 JavaScript 中,数组值可以是以上所有类型,外加任何其他有效的 JavaScript 表达式,包括函数、日期和 undefined。

2. JSON 对象中的数组

数组可以是对象属性的值:

{

“name”:“Bill Gates”,

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
img

React

  • 介绍一下react

  • React单项数据流

  • react生命周期函数和react组件的生命周期

  • react和Vue的原理,区别,亮点,作用

  • reactJs的组件交流

  • 有了解过react的虚拟DOM吗,虚拟DOM是怎么对比的呢

  • 项目里用到了react,为什么要选择react,react有哪些好处

  • 怎么获取真正的dom

  • 选择react的原因

  • react的生命周期函数

  • setState之后的流程

  • react高阶组件知道吗?

  • React的jsx,函数式编程

  • react的组件是通过什么去判断是否刷新的

  • 如何配置React-Router

  • 路由的动态加载模块

  • Redux中间件是什么东西,接受几个参数

  • redux请求中间件如何处理并发

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

02896)]
[外链图片转存中…(img-nuFrwuYO-1710587302897)]
[外链图片转存中…(img-VUjvys17-1710587302897)]
[外链图片转存中…(img-vRiYEFy2-1710587302897)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:前端)
[外链图片转存中…(img-2aCz4lf0-1710587302898)]

React

  • 介绍一下react

  • React单项数据流

  • react生命周期函数和react组件的生命周期

  • react和Vue的原理,区别,亮点,作用

  • reactJs的组件交流

  • 有了解过react的虚拟DOM吗,虚拟DOM是怎么对比的呢

  • 项目里用到了react,为什么要选择react,react有哪些好处

  • 怎么获取真正的dom

  • 选择react的原因

  • react的生命周期函数

  • setState之后的流程

  • react高阶组件知道吗?

  • React的jsx,函数式编程

  • react的组件是通过什么去判断是否刷新的

  • 如何配置React-Router

  • 路由的动态加载模块

  • Redux中间件是什么东西,接受几个参数

  • redux请求中间件如何处理并发

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • 22
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值