JSONオブジェクトとString間の相互転送および処理

12973 ワード

タイトルのように、webフロントエンドの開発においてよく使われる変換及び処理方法をいくつか挙げます。文字列ではなくJSONを使います。
 
JSON:JavaScriptオブジェクト表示法(JavaScript) Object Notation)、JSONはJavaScriptの対象です。
もしJSONが分からないなら、w 3 cschoolに行って知ることができます。http://www.w3school.com.cn/json/
1.javascriptに新しい文字列(JSONテキスト)を作成します。
var txt = '{ "employees" : [' +
'{ "firstName":"Bill" , "lastName":"Gates" },' +
'{ "firstName":"George" , "lastName":"Bush" },' +
'{ "firstName":"Thomas" , "lastName":"Carter" } ]}';
  
JSON文法はJavaScript文法のサブセットであるため、JavaScript関数eval()はJSONテキストをJavaScriptオブジェクトに変換するために用いることができる。
eval()関数はJavaScriptコンパイラを使用し、JSONテキストを解析し、JavaScriptオブジェクトを生成することができます。テキストを括弧に囲まなければなりません。これで文法エラーを避けることができます。
var obj = eval ("(" + txt + ")");
 
注意:eval()関数はJavaScriptコードをコンパイルして実行できます。これは潜在的な安全問題を隠している。
JSON解析器を使ってJSONをJavaScriptオブジェクトに変換するのがより安全です。JSON解析器はJSONテキストのみを識別でき、スクリプトをコンパイルすることはできません。
ブラウザでは、これは原生のJSONサポートを提供し、JSON解像器の速度が速い。
比較的新しいブラウザと最新のECMAScript(JavaScript)標準には元のJSONに対するサポートが含まれています。
 
文字列はjsonの対象を回転します:JSON.parse(jsostr);
jsonオブジェクト変換json文字列:JSON.stingify(Json Obj); 
JQuery方法:
Json文字列変換対象:jQuery.parseJSON(Json Str);
 
<html>
<body>
<h2>   JSON         </h3>
<p>
First Name: <span id="fname"></span><br /> 
Last Name: <span id="lname"></span><br /> 
</p> 
<script type="text/javascript">
var txt = '{"employees":[' +
'{"firstName":"Bill","lastName":"Gates" },' +
'{"firstName":"George","lastName":"Bush" },' +
'{"firstName":"Thomas","lastName":"Carter" }]}';

obj = JSON.parse(txt);

document.getElementById("fname").innerHTML=obj.employees[1].firstName 
document.getElementById("lname").innerHTML=obj.employees[1].lastName 
</script>
</body>
</html>
 
2.じゃどうやってjson配列を遍歴しますか?それを普通のjavascriptオブジェクトとして扱うことができます。
<html>
<body>
<h2>    JSON  </h3>
<div id="result"></div>
<script type="text/javascript">
var txt = '[{"firstName":"Bill","lastName":"Gates" },' +
'{"firstName":"George","lastName":"Bush" },' +
'{"firstName":"Thomas","lastName":"Carter" }]';

var arrayJson = JSON.parse(txt);
var html='';
for(var p in arrayJson){
    html+='  firstName:'+arrayJson[p].firstName;
    html+='  lastName'+arrayJson[p].lastName;
    html+='<br />';
  }

document.getElementById("result").innerHTML= html;
</script>
</body>
</html>
 
ie 8(互換モード)、ie 7とie 6はJSONオブジェクトがないですが、http://www.json.org/js.htmlはjson.jsを提供しています。このようにie 8(互換モード)、ie 7とie 6はJSONオブジェクトとそのstrigify()とパーパーパー()方法をサポートできます。あなたがいてもいいですhttps://github.com/douglascrockford/JSON-js上でこのjsを獲得して、普通は今json 2.jsを使います。
ie 8(互換モード)、ie 7、ie 6はeval()を使用して文字列をJSONオブジェクトに変換できます。
var c='{"name":"Mike","sex":" ","age":"29"}';
var cToObj=eval("("+c+")");
alert(typeof(cToObj));