json:
json的特点是结构清晰、易拓展,所以经常用来作为前后端交互的格式(也有的用xml格式)。而前端有原生方法将json字符串方便地转换为前端可用数据结构,所以你很有必要在后端把集合转为json字符串再传递。
json格式在前端中跟js的对象/数组数据结构长得一模一样,除了数据类型不同以外。所以前端喜欢称json为json对象。
json数据格式: (json键/值对)
{
“姓名”:”流年”
“性别”:”男”
“兴趣爱好”:”听音乐”
}
常见的几种编码方式
常见的一些字符编码方式无非有:Unicode、ASCII、GBK、GB2312、UTF-8。
ASCII编码:用来表示英文,它使用1个字节表示,其中第一位规定为0,其他7位存储数据,一共可以表示128个字符。
拓展ASCII编码:用于表示更多的欧洲文字,用8个位存储数据,一共可以表示256个字符
GBK/GB2312/GB18030:表示汉字。GBK/GB2312表示简体中文,GB18030表示繁体中文。
Unicode编码:包含世界上所有的字符,是一个字符集。
UTF-8:是Unicode字符的实现方式之一,它使用1-4个字符表示一个符号,根据不同的符号而变化字节长度。
后端编程过程涉及到的编码转换过程
Browser cilent: 首先,浏览器的设置里有设置编码格式,一般设置为UTF-8。
AJAX request: AJAX异步请求的过程中可以设置编码,contentType:"application/x-www-form-urlencoded; charset=utf-8"
PHP cilent: PHP通过$_POST这个全局变量接收前端POST过来的数据,编码格式为AJAX在请求头中设置的charset=utf-8,PHP操作的过程中可以通过iconv函数库自行转码,例如iconv("UTF-8","GB2312//IGNORE",$data)
connection: 在PHP与数据库连接的过程中可以设置connection过程中使用的编码格式,例如CodeIgniter框架可以在数据库配置文件database.php中,设置'char_set' => 'latin1'
databases: 数据会先把数据从php客户端的编码转为转为connection中设置的编码,再以字节流的形式传输并插入数据库。
前后端数据交互
过程:
-
在html页面要链接到js页面,要有个这样的东西
-
在js页面要定义controller层的url地址
-
分为获取数据和提交数据(js页面)
-
获取数据,通过$.getJSON获取
$.getJSON(shopInFourl,function(data))
data是转化为json格式的字符串
-
提交数据(通过$.ajax)
-
后台获取数据,获取json格式的字符串
-
将JSON格式的字符串,转为原来的格式
-
json数据的解码和编码
转为json格式:使用php内置的函数:json_encode
对字符串解码:json_decode