ホームページ > ウェブフロントエンド > jsチュートリアル > Ajaxを使用してJSONデータを未定義として取得する方法

Ajaxを使用してJSONデータを未定義として取得する方法

php中世界最好的语言
リリース: 2018-03-30 16:49:11
オリジナル
2208 人が閲覧しました

今回は、ajaxを使用して未定義のjsonデータを取得する方法を説明します。ajaxを使用して未定義のjsonデータを取得する場合の注意事項は何ですか?実際のケースを見てみましょう。

非同期

JavaScript と XML (Ajax) は、新世代の Web サイト (一般に Web 2.0 サイトとして知られています) を推進する主要なテクノロジです。 Ajax を使用すると、Web アプリケーションの表示や動作を妨げることなく、バックグラウンドでデータを取得できます。 XMLHttpRequest 関数を使用してデータを取得します。これは、クライアント側 JavaScript が HTTP 経由でリモート サーバーに接続できるようにする API です。 Ajax は、複数の場所のコンテンツを 1 つの Web アプリケーションに統合する多くのマッシュアップの原動力でもあります。

一般に、サーバーから送信された json 値を処理する場合、次の 2 つの方法で処理します。 1 つは eval() 関数を使用する方法です。 var dataObj=eval("("+data+")");//json オブジェクトに変換します (注: データは json データです)

2. 戻り値の分析には Function オブジェクトを使用します。 var json =(new Function("","re​​turn "+data))();

var dataObj=eval("("+data+")");//转换为json对象(注:data为json数据);

2. 使用Function对象来进行返回解析。var json =(new Function("","return "+data))(); しかし、今日プロジェクトに取り組んでいたとき(プロジェクトでは struts2 を使用していました)、これら 2 つのメソッドを使用しましたjson を読み取ると、出力は常に未定義になります。インターネットで多くの情報を調べましたが、そのほとんどが不明瞭でした。その後、著者もこの状況に遭遇し、テスト後に戻り値を json

attribute

として宣言するという記事を見つけました。自分のプロジェクトで不合格になった場合の解決策は、後で再度転送することです。以下は私個人の考えですが、バックグラウンドから送信されるデータはjson属性として宣言されていますが、フロントに渡す際には実際にはjsonオブジェクトではなくstringである必要があります。データをバックグラウンドで処理して json オブジェクトに変換し、json の値を取得します。ただし、バックグラウンドから送信される値が必ずしも標準の json 形式の文字列であるとは限りません。上記の 2 つの方法のいずれかを介してバックグラウンドから送信されるオブジェクトを変換しますが、このときに変換される json オブジェクトは実際には文字列のままです。標準の json 文字列を再度変換すると、json オブジェクトになります。 以下はコードの一部です:

 result = JSONObject.fromObject(map).toString();//后台代码,将map转成json对象
      success : function(result) {//前台返回值代码
var obj = eval("("+result+")");
//var data1 =(new Function("","return "+obj))();
var data1=eval("("+obj+")");
alert(data1.name);
      }
ログイン後にコピー

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

ajaxでjosnpを使用してjosnデータを受信する手順の詳細な説明


フロントエンドのajaxリクエストのエレガントなソリューションを実装する方法

以上がAjaxを使用してJSONデータを未定義として取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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