串行格式化数据

课后整理 2020-12-10

GET和POST方法都是以名/值对的字符串格式发送数据。

对象信息

下面是一个包含3个名/值对的JSON类型数据。

{ user:"ccs8",  pass: "123456", email: "css8@mysite.cn" }

将JSON数据转换为串行格式化显示为:

'user="ccs8"&pass="123456"&email="css8@mysite.cn"'

数组信息

下面是一组有序JSON信息,包含多个值。

[{ name:"user",  value:"css8" }, { name:"pass", value:"123456" },{  name:"email", value:"css8@mysite.cn" } ]

将上面数据转换为串行格式显示如下。

'user="ccs8"&  pass="123456"& email="css8@mysite.cn"'

【示例】为了方便开发,下面定义一个工具函数,该函数能够把数据转换为串行格式化字符串并返回。

// 把JSON数据转换为串行字符串
// 参数:data表示数组或对象类型数据;返回值:串行字符串
function  JSONtoString(data){
    var a = [];                                          //临时数组
    if( data.constructor == Array){           //处理数组
        for(var i = 0 ; i < data.length ;  i++){
            a.push(data[i].name + "="  + encodeURIComponent(data[i].value));
        } 
    } else{                                              //处理对象
        for(var i in data){
            a.push(i + "=" +  encodeURIComponent(data[i]));
        }
    }
    return a.join("&");                             //把数组转换为串行字符串,并返回
}