ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery JSON 解析メソッドの共有_jquery

jQuery JSON 解析メソッドの共有_jquery

WBOY
WBOYオリジナル
2016-05-16 18:08:42808ブラウズ

問題が解決された後、最終的には、関連する json オブジェクトの取得に関する jquery の理解にまだばらつきがあったことがわかりました。
ここで考慮されるのは、サーバーが JSONObject などのプラグインによってカプセル化された JSON オブジェクトの場合も同じであるため、ここでは説明しません。
ここではまず JSON 文字列セットを示します。文字列セットは次のとおりです。
コードは次のとおりです。

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

var data="
{
root:
[
{name:'1',value:'0'} 、
{名前:'6101'、値:'西安市'}、
{名前:'6102'、値:'通川市'}、
{名前:'6103'、値:'宝鶏市'}、
{名前:'6104'、値:'咸陽市'}、
{名前:'6105'、値:'渭南市'}、
{名前:' 6106',value:'延安市 '},
{name:'6107',value:'漢中市'},
{name:'6108',value:'玉林市'},
{名前:'6109',値:'安康市'},
{名前:'6110',値:'商洛市'}
]
}";

jqueryで非同期に取得したデータ jsonオブジェクトと文字列の型をベースに、2つのメソッドで得られた結果の処理方法をそれぞれ紹介します。
1. サーバーから返される JSON 文字列について、jquery 非同期リクエストに型の説明がない場合、または文字列として受け入れられる場合、メソッドはそれほど面倒ではありません。 eval()に文字列を入れると1回実行されます。このメソッドは、通常の javascipt メソッドで json オブジェクトを取得するのにも適しています。以下に例を示します。
コードをコピーします。 コードは次のとおりです。

var dataObj=eval("(" data ")");//json オブジェクトに変換
alert(dataObj.root.length);// root
$ の子オブジェクト。 each(dataObj.root,fucntion(idx,item){
if(idx==0){
return true;
}
// を出力します。各ルートサブオブジェクトの名前と値
alert("name:" item.name ",value:" item.value);
})

注: 一般的な JS の場合json オブジェクトを生成するには、$ のみを使用します。 each() メソッドを for ステートメントに置き換え、その他はすべて変更しないでください。
2. サーバーから返される JSON 文字列の場合、jquery 非同期リクエストがタイプ (通常はこの構成属性) を「json」に設定するか、$.getJSON() メソッドを使用してサーバーからの戻り値を取得する場合、 eval() メソッドを使用する必要はありません。この時点で取得される結果はすでに json オブジェクトであるため、オブジェクトを直接呼び出すだけで済みます。ここでは、データ処理メソッドを説明するための例として $.getJSON メソッドが使用されています。
ここで特別な注意が必要なのは、メソッド 1 では eval() メソッドが文字列 (おそらく js スクリプト) を動的に実行するため、システム セキュリティの問題が簡単に発生する可能性があることです。したがって、eval() を回避するサードパーティのクライアント スクリプト ライブラリを使用できます。たとえば、JavaScript の JSON は 3K 以内のスクリプト ライブラリを提供します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。