JAvascriptの文字列フォーマットjsonをjsonオブジェクトに変換する方法

8751 ワード

JSOnJSON(JavaScript Object Notation)とは、美しいJavaScriptオブジェクトの作成方法です.JSONも軽量レベルのデータ交換フォーマットです.JSONは人が読むことと書くことが非常に容易で、同時に機械の解析と生成に有利である.JSONは、XMLの代わりにAJAXでデータを交換するより良い案です.JSON形式と構文var jsonobject={//オブジェクト内の属性構文(属性名と属性値がペアで現れる)propertyname:value,//オブジェクト内の関数構文(関数名と関数内容がペアで現れる)functionname:function(){...;}}}jsonobject--JSONオブジェクト名propertyname--属性名functionname--関数名の一対の括弧で、複数の「名称/値」を囲む集合JSONは「名称/値」対の集合で表されるが、配列(Array)属性名または関数名は任意の文字列、さらには空の文字列(以下の例を参照)カンマで、各対の「名称/値」対を区切るために用いられると理解される
文字列形式jsonをjsonオブジェクトに変換するには、1:jsでevalでJSONオブジェクトを生成する---eval()関数でJSON文字列をオブジェクトに変換できます.2:使用関数方式3:jsのjsonライブラリまたはjQueryが提供するjsライブラリを使用---セキュリティの考慮に基づいている場合はJSON解析器を1つ使用することが望ましい.1つのJSON解析器はJSONテキストのみを受け入れます.だからもっと安全です.
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

        <head>

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

        <title>     json     json  </title>

        <style type="text/css"></style>

        <script type="text/javascript">

            //  1:js  eval  JSON  

            function strJsonToJsonByEval(jsonData){ 

                var json = eval("(" + jsonData +")");//   json     

                return json;

            }

            

            //  2:      

            function strJsonToJsonByFunction(jsonData){ 

              return ( new Function("return "+jsonData) )(); 

            }

            

            window.onload = function() {

                var jsonData = " {name1:'1',value1:'a',name2:'2',value2:'b' }";

                var json1 = strJsonToJsonByFunction(jsonData);

                alert("Function || " + json1.name1 + "  ---  " + json1.name2);

                

                var json2 = eval("(  {name1:'1',value1:'a',name2:'2',value2:'b' } )");

                alert("eval(\"(\"jsonData\")\")  || " + json2.value1 + "  ---  " + json2.value2);

                

                var json3 = strJsonToJsonByEval(jsonData);

                alert("Eval || " + json3.value1 + "  ---  " + json3.value2);

            }

        </script>

        </head>

        <body>

        </body>

</html>

書き方:
/*

             * @method           json   json  

             * @param jsonData param fomart:

             * var jsonData = "{name1:'1',value1:'a',name2:'2',value2:'b' }";

             * @return json;

             */

            function strJsonToJson(jsonData){ 

                //  1:js  eval  JSON  

                //var json = eval("(" + jsonData +")");//   json     

                //return json;

                //  2:      

              return ( new Function("return "+jsonData) )(); 

            }

jQuery
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>jQuery      json</title>



<script type="text/javascript" src="jquery-1.9.1.js"></script>

<script type="text/javascript" src="jquery.json-2.4.js"></script>

<script type="text/javascript">

/*

jquery-1.9.1.js      。

jQuery.parseJSON( json )   : Object

          JSON    ,        JavaScript   。



        JSON            。  ,     JSON         :

{test: 1} (test          ).

{'test': 1} ('test'              ).

  ,         ,        、null、undefined  ,parseJSON      null 。           JSON.parse, jQuery            。

*/

var strJson = '{"name":"John"}';

//var strJson = "{name:'John'}";//    ,              JSON    ,key--value        

var obj = jQuery.parseJSON(strJson);

alert( obj.name === "John" ); // true



var obj2 = $.parseJSON(strJson);

alert( obj2.name  ); //John





/*

jquery.json-2.4.js      。

                JSON           ,            。

http://code.google.com/p/jquery-json/

toJSON: Serializes a javascript object, number, string, or array into JSON.

evalJSON: Converts from JSON to Javascript, quickly, and is trivial.

*/



//Json Object

var json = { plugin: 'jquery-json', version: 2.4 };



//toJSON: Json Object ---> String Json

var encoded = $.toJSON( json );// '{"plugin":"jquery-json","version":2.4}'

 

//evalJSON: String Json ---> Json Object

var jsonObject = $.evalJSON( encoded );

 

var name = $.evalJSON( encoded ).plugin;// "jquery-json"

var version = $.evalJSON(encoded).version;// 2.4



alert( "toJSON: "  + encoded + " ,typeof "  + typeof encoded + "\r
\r
" + "evalJSON: " + jsonObject + " ,typeof " + typeof(jsonObject) + "\r
\r
" + "name= " + name + " , version= " + version ); </script> </head> <body> </body> </html>

http://rogerfederer.iteye.com/blog/1798024