赞
踩
这几天编写web前端时,在处理前端数据发回后端时遇到了一些数据格式的问题,查了不少资料后准备整理总结一下。
常见的有两种格式 json与form
"key":"value" #key->键 value->值
具体的例子
"name":"hnust" #key->name, value->hnust
注:JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null),
我上面的例子中的值的类型就是 字符串
# 普通的例子(键值对1对1),要用 {} 包起来
# 请注意,我定义的是js对象,后面会有解释
var j = {"name1":"hnust","name2":"hunan"}
# 使用数组(键值对可以一对多)
var j = {"name1":["hnust","test"],"name2":"hunan"}
# 但多对一和多对多不可以,以下都是错误的
var j = {["name1","test"]:"hnust","name2":"123"}
var j = {["name1","test"]:["hnust","test"],"name2":"123"}
在数据传输的过程中,经常需要将json字符串与js对象进行相互转换才能使用
json字符串:var j = '{"name1":"hnust","name2":"hunan"}'
#注意看,这个是由单引号包裹的字符串
js对象:var j = {"name1":"hnust","name2":"hunan"}
str:必选参数,你需要转换的json字符串
fun:可选参数,对每个字符串都进行一次函数内容的操作,并将返回值作为新值
var str = '{"name":"hnust"}';
var obj = JSON.parse(str,fun);
function fun(key,value){
if(key == "name"){
value = "test";
}
return value; # 这是经过处理后的新值,将其返回
}
console.log(obj)
#经过处理后obj = {"name":"test"} -> 变成了js对象
序列化
为json字符串,使用JSON.stringify(value [,replace] [,space])value:必选参数,js对象或数组
replace:可选参数,这个可以是:函数或数组,如果是函数,就和JSON.parse(str[,fun])的作用类似,
如果是数组,则只有数组中存在名称才能够被转换,且转换后顺序与数组中的值保持一致
space:可选参数,这是为了排版、方便阅读而存在的。可以在JSON字符串中添加空白或制表符等。
var str = '{"name":"hnust"}';
var obj = JSON.stringify(str,fun);
function fun(key,value){
if(key == "name"){
value = "test";
}
return value; # 这是经过处理后的新值,将其返回
}
console.log(obj)
解释:什么是序列化
将对象序列化,意味着将数据结构转换为字符串形式,以便在网络传输或存储时使用。例如, 在POST请求中,data通常是要发送到服务器的数据,因此需要将其序列化为字符串,以便服务器能够正确地解析和处理它。 常见的序列化方法包括JSON、XML、URL编码等。
enctype
这个属性application/json
application/x-www-form-urlencoded
multipart/form-data(Form传文件必须设定的,比如图片)
----Web......
这一串看不懂的字符串,就是分隔符boundary;在两个这样的分隔符boundary之间的就是part,一个part就是一个组件text/plain
本文总结了json和from这两种常见的数据传输格式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。