今回は、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("","return "+data))();
var dataObj=eval("("+data+")");
//转换为json对象(注:data为json数据);
2. 使用Function对象来进行返回解析。var json =(new Function("","return "+data))();
しかし、今日プロジェクトに取り組んでいたとき(プロジェクトでは struts2 を使用していました)、これら 2 つのメソッドを使用しましたjson を読み取ると、出力は常に未定義になります。インターネットで多くの情報を調べましたが、そのほとんどが不明瞭でした。その後、著者もこの状況に遭遇し、テスト後に戻り値を json
として宣言するという記事を見つけました。自分のプロジェクトで不合格になった場合の解決策は、後で再度転送することです。以下は私個人の考えですが、バックグラウンドから送信されるデータは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 サイトの他の関連記事を参照してください。