nglr.array = [].constructor; nglr.toJson = function(obj, pretty){ var buf = []; nglr.toJsonArray(buf, obj, pretty ? "\n " : null); return buf.join(''); }; nglr.toPrettyJson = function(obj) { return nglr.toJson(obj, true); }; nglr.fromJson = function(json) { try { var parser = new nglr.Parser(json, true); var expression = parser.primary(); parser.assertAllConsumed(); return expression(); } catch (e) { console.error("fromJson error: ", json, e); throw e; } }; nglr.toJsonArray = function(buf, obj, pretty){ var type = typeof obj; if (obj === null) { buf.push("null"); } else if (type === 'function') { return; } else if (type === 'boolean') { buf.push('' + obj); } else if (type === 'number') { if (isNaN(obj)) { buf.push('null'); } else { buf.push('' + obj); } } else if (type === 'string') { return buf.push(angular.String.quoteUnicode(obj)); } else if (type === 'object') { if (obj instanceof Array) { buf.push("["); var len = obj.length; var sep = false; for(var i=0; i