Files
cdnjs/ajax/libs/jquery.serializeJSON/1.2.0/jquery.serializeJSON.min.js
T

10 lines
1.1 KiB
JavaScript

/*!
SerializeJSON jQuery plugin.
https://github.com/marioizquierdo/jquery.serializeJSON
version 1.2.0 (Mar 11, 2014)
Copyright (c) 2012 Mario Izquierdo
Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
*/
(function(e){"use strict";e.fn.serializeJSON=function(){var t,n;t={};n=this.serializeArray();e.each(n,function(n,r){var i,s,o;i=r.name;s=r.value;o=e.map(i.split("["),function(e){var t;t=e[e.length-1];return t==="]"?e.substring(0,e.length-1):e});if(o[0]===""){o.shift()}e.deepSet(t,o,s)});return t};var t=function(e){return e===Object(e)};var n=function(e){return e===void 0};var r=function(e){return/^[0-9]+$/.test(String(e))};e.deepSet=function(i,s,o){var u,a,f,l,c,h;if(!s||s.length===0){throw new Error("ArgumentError: keys param expected to be an array with least one key")}u=s[0];if(s.length==1){if(u===""){i.push(o)}else{i[u]=o}}else{a=s[1];if(u===""){c=i.length-1;h=i[i.length-1];if(t(h)&&n(h[a])){u=c}else{i.push({});u=c+1}}if(n(i[u])){if(a===""||r(a)){i[u]=[]}else{i[u]={}}}f=s.slice(1);e.deepSet(i[u],f,o)}}})(jQuery)