JSFiddle - React, Tailwind, and code Playground
by tonyleeper
JavaScript
/**
Custom JavaScript Object Serializer
*/
var escapeQuotes = function (value) {
return value.replace('"', '\\"');
};
var serialize = function (obj) {
var parts = [];
for (var prop in obj) {
if (obj.hasOwnProperty(prop)) {
switch (Object.prototype.toString.call(obj[prop])) {
/* primitive data types */
case "[object Null]":
parts.push('N:"' + prop + '":null');
break;
case "[object Undefined]":
throw new Error("Unsupported Type Exception");
break;
case "[object Number]":
case "[object Boolean]":
parts.push('B:"' + prop + '":' + obj[prop]);
break;
case "[object String]":
parts.push('S:"' + prop + '":"' + escapeQuotes(obj[prop]) + '"');
break;
/* native objects */
case "[object Array]":
break;
case "[object Date]":
parts.push('D:"' + prop + '":' + obj[prop].getTime());
break;
case "[object Error]":
throw new Error("Unsupported Type Exception");
break;
case "[object Math]":
throw new Error("Unsupported Type Exception");
break;
case "[object RegExp]":
throw new Error("Unsupported Type Exception");
break;
case "[object Function]":
// ignore functions?
break;
/* user defined objects */
case "[object Object]":
parts.push('O:"' + prop + '":' + serialize(obj[prop]));
break;
}
}
}
return "{" + parts.join(",") + "}";
};
var splitSpecial =...