Skip to content

Instantly share code, notes, and snippets.

@rjurado01
Created January 29, 2016 22:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rjurado01/b88d7da36aa97370827c to your computer and use it in GitHub Desktop.
Save rjurado01/b88d7da36aa97370827c to your computer and use it in GitHub Desktop.
/*
* Serialize value
*/
function serializeValue(key, value, formData) {
if(value) {
if($.type(value) == "string" || $.type(value) == 'number' || value.constructor == File) {
formData.append(key, value);
}
else if($.type(value) == "array") {
serializeArray(key, value, formData);
}
else if(value.constructor == Object) {
serializeNestedObject(key, value, formData);
}
else {
formData.append(key, JSON.stringify(value));
}
}
else {
formData.append(key, "");
}
}
/*
* Serialize array
*/
function serializeArray(key, array, formData) {
if(array.length > 0) {
array.forEach(function(value) {
serializeValue(key + '[]', value, formData);
});
}
else {
// formData.append(key + '[]', "");
}
}
/*
* Serialize nested object
*/
function serializeNestedObject(parent_key, object, formData) {
for (var key in object) {
serializeValue(parent_key + '[' + key + ']', object[key], formData);
}
}
/*
* Serialize object
*/
function serializeObject(object) {
var formData = new FormData();
for (var key in object) {
serializeValue(key, object[key], formData);
}
return formData;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment