jquery.param()实现数组或对象的序列化方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了jquery.param()实现数组或对象的序列化方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2771字,纯文字阅读大概需要4分钟。
内容图文
![jquery.param()实现数组或对象的序列化方法](/upload/InfoBanner/zyjiaocheng/335/da9810caa6ba427b9cf52026654f0754.jpg)
jQuery.param( obj ):
创建适用于URL查询字符串或Ajax请求的数组,普通对象或jQuery对象的序列化表示形式。 如果jQuery对象被传递,它应该包含具有name / value属性的输入元素。
jQuery.param( obj ): obj: 类型:Array或PlainObject或jQuery 一个数组,一个普通的对象,或一个jQuery对象进行序列化。 jQuery.param( obj, traditional ): obj: 类型:Array或PlainObject或jQuery 一个数组,一个普通的对象,或一个jQuery对象进行序列化。 traditional : 类型:布尔值 一个布尔值,表示是否执行传统的“浅”序列化。
内部使用此函数将表单元素值转换为序列化字符串表示形式(有关更多信息,请参阅.serialize())。
从jQuery 1.3开始,使用函数的返回值代替函数作为String。
从jQuery 1.4开始,$ .param()方法递归序列化深层对象,以适应现代脚本语言和框架,如PHP和Ruby on Rails。
您可以通过设置jQuery.ajaxSettings.traditional = true来全局禁用此功能。从jQuery 3.0开始,$ .param()方法不再使用jQuery.ajaxSettings.traditional作为其默认设置,默认为false。
为了跨版本的最佳兼容性,请调用$ .param()和第二个参数的显式值,并且不要使用默认值。如果传递的对象在数组中,则它必须是由.serializeArray()返回的格式的对象数组。
[ { name: "first", value: "Rick" }, { name: "last", value: "Astley" }, { name: "job", value: "Rock Star" } ]
注意:由于某些框架解析序列化数组的能力有限,因此开发人员在传递包含嵌套在另一个数组中的对象或数组的obj参数时应谨慎。
注意:由于没有普遍约定的param字符串规范,所以不可能以支持此类输入的所有语言的理想方式对使用此方法的复杂数据结构进行编码。 使用JSON格式替代编码复杂数据。
在jQuery 1.4中,HTML5输入元素也被序列化。我们可以显示一个对象的查询字符串表示形式和一个URI解码版本,如下所示:
var myObject = { a: { one: 1, two: 2, three: 3 }, b: [ 1, 2, 3 ] }; var recursiveEncoded = $.param( myObject ); var recursiveDecoded = decodeURIComponent( $.param( myObject ) ); alert( recursiveEncoded ); alert( recursiveDecoded );
shallowEncoded和shallowDecoded的值弹出如下:
a=%5Bobject+Object%5D&b=1&b=2&b=3 a=[object+Object]&b=1&b=2&b=3
举例:
序列化一个键/值对象。
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>jQuery.param demo</title> <style> div { color: red; } </style> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <div id="results"></div> <script> var params = { width:1680, height:1050 }; var str = jQuery.param( params ); $( "#results" ).text( str ); </script> </body> </html>
演示:
序列化一些复杂的对象
// <=1.3.2: $.param({ a: [ 2, 3, 4 ] }); // "a=2&a=3&a=4" // >=1.4: $.param({ a: [ 2, 3, 4 ] }); // "a[]=2&a[]=3&a[]=4" // <=1.3.2: $.param({ a: { b: 1, c: 2 }, d: [ 3, 4, { e: 5 } ] }); // "a=[object+Object]&d=3&d=4&d=[object+Object]" // >=1.4: $.param({ a: { b: 1, c: 2 }, d: [ 3, 4, { e: 5 } ] }); // "a[b]=1&a[c]=2&d[]=3&d[]=4&d[2][e]=5"
以上这篇jquery.param()实现数组或对象的序列化方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
内容总结
以上是互联网集市为您收集整理的jquery.param()实现数组或对象的序列化方法全部内容,希望文章能够帮你解决jquery.param()实现数组或对象的序列化方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。