-<html><head><title>../roojs1/Roo/util/JSON.js</title><link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
+<html><head><title>/home/alan/gitlive/roojs1/Roo/util/JSON.js</title><link rel="stylesheet" type="text/css" href="../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
* Based on:
* Ext JS Library 1.1.1
* Copyright(c) 2006-2007, Ext JS, LLC.
*/
</span><span class="jsdoc-var">Roo.util.JSON </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">useHasOwn </span><span class="jsdoc-syntax">= {}</span><span class="jsdoc-var">.hasOwnProperty </span><span class="jsdoc-syntax">? </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
-
+
</span><span class="jsdoc-comment">// crashes Safari in some instances
//var validRE = /^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/;
-
+
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pad </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">) {
</span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">< 10 ? </span><span class="jsdoc-string">"0" </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">;
};
-
+
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">m </span><span class="jsdoc-syntax">= {
</span><span class="jsdoc-string">"\b"</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'\\b'</span><span class="jsdoc-syntax">,
</span><span class="jsdoc-string">"\t"</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'\\t'</span><span class="jsdoc-syntax">,
}
</span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'"' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'"'</span><span class="jsdoc-syntax">;
};
-
+
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">encodeArray </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-string">"["</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">b</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">l </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">o.length</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">v</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-keyword">for </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">< </span><span class="jsdoc-var">l</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">+= 1) {
</span><span class="jsdoc-var">a.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"]"</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">a.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">);
};
-
+
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">encodeDate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">'"' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">o.getFullYear</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-string">"-" </span><span class="jsdoc-syntax">+
</span><span class="jsdoc-var">pad</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.getMonth</span><span class="jsdoc-syntax">() + 1) + </span><span class="jsdoc-string">"-" </span><span class="jsdoc-syntax">+
</span><span class="jsdoc-var">pad</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.getMinutes</span><span class="jsdoc-syntax">()) + </span><span class="jsdoc-string">":" </span><span class="jsdoc-syntax">+
</span><span class="jsdoc-var">pad</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o.getSeconds</span><span class="jsdoc-syntax">()) + </span><span class="jsdoc-string">'"'</span><span class="jsdoc-syntax">;
};
-
+
</span><span class="jsdoc-comment">/**
* Encodes an Object, Array or other value
* @param {Mixed} o The variable to encode
</span><span class="jsdoc-var">this.encode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">)
{
</span><span class="jsdoc-comment">// should this be extended to fully wrap stringify..
-
+
</span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">"undefined" </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">o </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">"null"</span><span class="jsdoc-syntax">;
}</span><span class="jsdoc-keyword">else if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Array</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">a.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">""</span><span class="jsdoc-syntax">);
}
};
-
+
</span><span class="jsdoc-comment">/**
* Decodes (parses) a JSON string to an object. If the JSON is invalid, this function throws a SyntaxError.
* @param {String} json The JSON string
* @return {Object} The resulting object
*/
</span><span class="jsdoc-var">this.decode </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">json</span><span class="jsdoc-syntax">){
-
+
</span><span class="jsdoc-keyword">return </span><span class="jsdoc-comment">/** eval:var:json */ </span><span class="jsdoc-keyword">eval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"(" </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">json </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">')'</span><span class="jsdoc-syntax">);
};
})();