OSDN Git Service

Version 0.6.160, fix X.Net.
[pettanr/clientJs.git] / 0.6.x / js / 05_util / 02_XJSON.js
1 \r
2 \r
3 var X_JSON = X[ 'JSON' ] =\r
4 \r
5 // TODO ie8 は子フレームには JSON がいない…アクセス可能な親を探索\r
6 \r
7                                                 // JavaScriptでunicode文字列をunescapeする\r
8                                                 // http://perutago.seesaa.net/article/202801583.html\r
9                                                 \r
10                                                 // http://blog.livedoor.jp/dankogai/archives/51503830.html              \r
11                                                 // Ajax - IE8にもJSON入ってます。使えるとは限らないけど\r
12                                                 // Compatibility mode (別名Quirks mode) では、JSONオブジェクトは無効になります。iframeもだめです\r
13 X_UA[ 'IE8' ] ? {\r
14         'stringify' : function( o ){\r
15                 return unescape( JSON.stringify( o ) );\r
16         },\r
17         \r
18         'parse' : JSON.parse\r
19 } :\r
20 \r
21 window.JSON || {\r
22         'stringify' : X_JSON_stringify,\r
23         \r
24         'parse'     : X_String_parseTrustedJsonString\r
25 };\r
26 \r
27 \r
28 \r
29 function X_JSON_stringify( obj ){\r
30         var json = '', k, v;\r
31         for( k in obj ){\r
32                 if( json ) json += ',';\r
33                 v = obj[ k ];\r
34                 v = v || v === 0 ? v : null;\r
35                 json += '"' + k + '":' + ( X_Type_isObject( v ) ? X_JSON_stringify( v ) : X_Type_isString( v ) ? '"' + v + '"' : v );\r
36         };\r
37         //console.log( json );\r
38         return '{' + json + '}';\r
39 };