0

私は、Agatha と呼ばれる .NET WCF 要求/応答フレームワークを試してきました。彼らが持っている例の 1 つは、MooTools を使用して JSONP 拡張機能を呼び出し、ASP.NET MVC アプリのページ内に結果を表示することです。

顧客のコレクションを返す (AdventureWorks db から) 作成したサービスを呼び出すために、単一の文字列を返す例を採用しました。

私は一般的にJavaScriptの経験がほとんどなく、サービスから出力を取得する関数の作成に行き詰まっています:

Request.JSONP.request_map.request_0({"ProcessJsonRequestsResult":[{"__type":"GetCustomerDetailsResponse:#Reference.ServiceLayer.Common.AdventureWorks.RequestAndResponse","Exception":null,"ExceptionType":0,"IsCached":false,"Customers":[{"CompanyName":"Trailblazing Sports","CustomerId":187,"FirstName":"Frank","LastName":"Campbell","MiddleName":null},{"CompanyName":"Authorized Bike Sales and Rental","CustomerId":199,"FirstName":"Roger","LastName":"Lengel","MiddleName":null},{"CompanyName":"Westside Plaza","CustomerId":599,"FirstName":"Raul","LastName":"Casts","MiddleName":"E."},{"CompanyName":"Westside Plaza","CustomerId":29641,"FirstName":"Raul","LastName":"Casts","MiddleName":"E."},{"CompanyName":"Trailblazing Sports","CustomerId":29938,"FirstName":"Frank","LastName":"Campbell","MiddleName":null},{"CompanyName":"Authorized Bike Sales and Rental","CustomerId":29942,"FirstName":"Roger","LastName":"Lengel","MiddleName":null}]}]});

そして、結果をページに出力できるように、それを繰り返し処理できるようにします。誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

2

@pleasedontbelong: JSONP では、JSON.decode を使用する必要はありません

@John Kattenhorn: ドキュメントの例のように、onComplete イベントを使用する必要があります: http://mootools.net/docs/more/Request/Request.JSONP

// ...

    onComplete: function(data){
        // You can, for example, iterate over the data
        // Assuming you have MooTools 1.3
        Object.each(data, function(value, key){

        });
    }

// ...

それがデータの使用方法ですRequest.JSONP.request_map.request_0。変数もプライベートです。

于 2010-12-29T22:12:02.447 に答える
0

リクエストのレスポンスを Json 形式で受け取っていると仮定すると、Object.eachを使用してオブジェクトを反復処理する必要があります。

var response = '{"age": "25 years", "height": "170 cm", "weight": "120 kg", "name": "John", "lastName": "Doe"}';
    
var json = JSON.decode(response);
Object.each(json, function(item,index){
    alert("index:" + index + " item:" + item);
});

ここでは、テストするためだけに JSON.decode を使用しています... JSONP は既に json オブジェクトを提供していると思います

お役に立てれば

于 2010-12-29T16:23:16.403 に答える