JavaScript_javascript スキルで文字列を JSON に変換する 2 つの方法

WBOY
リリース: 2016-05-16 15:53:03
オリジナル
1193 人が閲覧しました

最初の方法:

js 関数 eval() を使用します;

testJson=eval(testJson); は間違った変換方法です。

正しい変換方法には () を追加する必要があります: testJson = eval("(" testJson ")");

eval() は非常に高速ですが、任意の JavaScript プログラムをコンパイルして実行できるため、セキュリティ上の問題が発生します。 eval() を使用します。情報源は信頼できるものでなければなりません。より安全な JSON パーサーを使用する必要があります。サーバーが JSON を厳密にエンコードしていない場合、または入力が厳密に検証されていない場合、無効な JSON が提供されたり、危険なスクリプトが含まれたり、eval() でスクリプトが実行され、悪意のあるコードがリリースされる可能性があります。

js コード:

コードをコピー コードは次のとおりです:

関数 ConvertToJsonForJs() {
//var testJson = "{ 名前: 'Xiaoqiang'、年齢: 16 }" (サポートされています)
//var testJson = "{ 'name': 'Xiaoqiang', 'age': 16 }" (サポートされています)
var testJson = '{ "名前": "小強", "年齢": 16 }';
//testJson=eval(testJson);//変換方法が間違っています
testJson = eval("(" testJson ")");
アラート(testJson.name);
}

2 番目のメソッドは jquery.parseJSON() メソッドを使用します。これは、json 形式に関するより高い要件があり、json 形式に準拠する必要があります

jquery.parseJSON()

js:コード

コードをコピー コードは次のとおりです:

関数 ConvertToJsonForJq() {
var testJson = '{ "名前": "小強", "年齢": 16 }';
// わかりません
//'{ 名前: "Xiaoqiang"、年齢: 16 }' (名前は二重引用符で囲まれていません)
//"{ 'name': "Xiaoqiang", 'age': 16 }" (名前は一重引用符を使用します)
testJson = $.parseJSON(testJson);
アラート(testJson.name);
}

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート