表单序列化,获取Json对象

摘要:
json[name]){json[name]=value;}elseif{json[name].push;}其他{jsons[name]=[json[name=,value];}});returnjson;}$。Param()将对象转换为字符串键值对格式$Param(()可以将对象的键值转换为URL地址的字符串键值,这可以更稳定、更准确地传递表单内容,因为有时程序的序列化和解析能力有限,对应于复杂度varobj={aa:1,bb:'maggy',cc:'Nangu'}console.log//aa=1&bb=margy&cc=%E5%8D%97%E5%9B%BD

以下方法适用于所有表单元素

1、.serialize()

$(selector).serialize()方法通过序列化表单值创建 URL 编码文本字符串

<form>
  <input type="checkbox" name="username" value="南国"/>南国
  <input type="checkbox" name="username" value="mary"/>mary
  <input type="text" name="age" value="18"/>
</form>


var aa = $('form').serialize();
console.log(aa); // username=%E5%8D%97%E5%9B%BD&username=mary&age=18
// 用decodeURIComponent解码
console.log(decodeURIComponent(aa)); // username=南国&username=mary&age=18

2、.serializeArray()

$(selector).serializeArray()方法通过序列化表单值来创建对象(name 和 value)的数组

var aa = $('form').serializeArray();
console.log(aa); 

这里写图片描述

3、.serializeJson()

把以下这段代码引入你的js文件中
$(selector).serializeJson()方法,是通过serializeArray()函数得到的数组来进行数据组装的
表单的name值为键值,若有多个相同的name值以数组的形式进行拼装,如下列的username

$.fn.serializeJson = function() {
  var arr = this.serializeArray();
  var json = {};
  arr.forEach(function(item) {
    var name = item.name;
    var value = item.value;

    if (!json[name]) {
      json[name] = value;
    } else if ($.isArray(json[name])) {
      json[name].push(value);
    } else {
      json[name] = [json[name], value];
    }
  });
  return json;
}

这里写图片描述

$.param()将对象转换为字符串键值对格式

$.param()可以将对象的键值转为URL地址的字符串键值对,可以更稳定准确的传递表单内容,因为有时程序对应复杂的序列化解析能力有限

var obj = {
  aa: 1,
  bb: 'margy',
  cc: '南国'
}

console.log($.param(obj));  // aa=1&bb=margy&cc=%E5%8D%97%E5%9B%BD

免责声明:文章转载自《表单序列化,获取Json对象》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Matlab读取Excel的数据sql server中:isnull(列名,0) 和isnull(列名,0)&amp;lt;&amp;gt;0 的区别下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Jackson的高级应用(转)

Jackson 是当前用的比较广泛的,用来序列化和反序列化 JSON 的 Java 的开源框架。Jackson 社 区相对比较活跃,更新速度也比较快, 从 Github 中的统计来看,Jackson 是最流行的 JSON 解析器之一 。 Spring MVC 的默认 JSON 解析器便是 Jackson。 Jackson 优点很多。 Jackson 所依赖...

Linux内核Radix Tree(一)

一、概述 Linux radix树最广泛的用途是用于内存管理,结构address_space通过radix树跟踪绑定到地址映射上的核心页,该radix树允许内存管理代码快速查找标识为dirty或writeback的页。Linux radix树的API函数在lib/radix-tree.c中实现。 Linux基数树(radix tree)是将指针与long整...

Django之缓存、信号和图片验证码、ORM性能

一、 缓存 1、 介绍 缓存通俗来说:就是把数据先保存在某个地方,下次再读取的时候不用再去原位置读取,让访问速度更快。 缓存机制图解 2、Django中提供了6种缓存方式   1. 开发调试   2. 内存   3. 文件   4. 数据库   5. Memcache缓存(python-memcached模块)   6. Memcache缓存(pyl...

JAVA序列化:implements Serializable

什么是序列化: 序列化的过程,就是一个“freeze”的过程,它将一个对象freeze住,然后进行存储,等到再次需要的时候,再将这个对象de-freeze就可以立即使用。 什么情况下需要序列化: 原文:https://blog.csdn.net/dinghqalex/article/details/46009911          1.     当你想把...

深入 js 深拷贝对象

前言 对象是 JS 中基本类型之一,而且和原型链、数组等知识息息相关。不管是面试中,还是实际开发中我们都会碰见深拷贝对象的问题。 顾名思义,深拷贝就是完完整整的将一个对象从内存中拷贝一份出来。所以无论用什么办法,必然绕不开开辟一块新的内存空间。 通常有下面两种方法实现深拷贝: 迭代递归法 序列化反序列化法 我们会基于一个测试用例对常用的实现方法进行...

WebLogic浅析

WebLogic安装 官网下载安装过程没啥特别的,不多说了自己去看吧! WebLogic简介   WebLogic是美国Oracle公司出品的一个Application Server,确切的说是一个基于JavaEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和...