ホームページ  >  記事  >  ウェブフロントエンド  >  JSON 型 data_javascript を読み取って解析する js メソッドのスキル

JSON 型 data_javascript を読み取って解析する js メソッドのスキル

WBOY
WBOYオリジナル
2016-05-16 15:32:271244ブラウズ

この記事の例では、js が JSON 型データを読み取り、解析する方法を説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

1. JSON とは何ですか?

JSON (JavaScript Object Notation) は、完全に言語に依存しないテキスト形式を使用する軽量のデータ交換形式であると同時に、JavaScript のネイティブ形式でもあります。
サーバーと JavaScript 間の対話に非常に適しています

2. XML の代わりに JSON を使用する理由

彼らは皆、こう言います: XML がクロスプラットフォームおよびクロス言語の利点を持っていることはよく知られていますが、Web サービスに適用されない限り、通常の Web アプリケーションでは、開発者は XML の解析に苦労することがよくあります。これは頭痛の種です。サーバーが XML を生成または処理する場合でも、クライアントが JavaScript を使用して XML を解析する場合でも、多くの場合、コードが複雑になり、開発効率が非常に低くなります。実際、ほとんどの Web アプリケーションでは、データの送信に複雑な XML はまったく必要ありません。XML の拡張性が有利になることはほとんどありません。また、多くの AJAX アプリケーションは、動的な Web ページを構築するために HTML フラグメントを直接返すことさえあります。 XML を返して解析する場合と比較して、HTML フラグメントを返すことはシステムの複雑さを大幅に軽減しますが、ある程度の柔軟性にも欠けます

3.

の使用方法

次のコードは HTML コード スニペットです。これにより、ボタンをクリックして JSON 形式のデータを解析し、コンテンツを警告できます

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

以下は js 関数コードです:
var json = {
  contry:{
  area:{
   man:"12万",
   women:"10万"
  }
  }
 };
//方式一:使用eval解析
 var obj = eval(json);
 alert(obj.constructor);
 alert(obj.contry.area.women);
 //方式二:使用Funtion函数
 var strJSON = "{name:'json name'}";//得到的JSON
 var obj = new Function("return" + strJSON)();//转换后的JSON对象
 alert(obj.name);//json name
 alert(obj.constructor);
//复杂一点的json数组数据的解析
 var value1 = [ 
  {"c01":"1","c02":"2","c03":"3","c04":"4","c05":"5","c06":"6","c07":"7","c08":"8","c09":"9"},
   {"c01":"2","c02":"4","c03":"5","c04":"2","c05":"8","c06":"11","c07":"21","c08":"1","c09":"12"},
  {"c01":"5","c02":"1","c03":"4","c04":"11","c05":"9","c06":"8","c07":"1","c08":"8","c09":"2"}
   ]; 
 var obj1 = eval(value1);
 alert(obj1[0].c01);
 //复杂一点的json的另一种形式
 var value2 = {
   "list":[
   {"password":"1230","username":"coolcooldool"},
   {"password":"thisis2","username":"okokok"}
   ],
   "array":[
   {"password":"1230","username":"coolcooldool"},
   {"password":"thisis2","username":"okokok"}
   ]
   };
 var obj2 = eval(value2);
 alert(obj2.list[0].password);
}

4. 評価

① このフォームではコンパイラ

を実行する必要があるため、パフォーマンスが大幅に低下します。

② eval 関数は、評価されるテキストに過度の権限を与えるため、アプリケーションのセキュリティも弱めます。 with ステートメントの実行方法と同様に、言語のパフォーマンスが低下します

③ Function コンストラクターは eval の別の形式であるため、これも避けるべきです。

この記事が JavaScript プログラミングのすべての人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。