0

我一直在试验一个名为 Agatha 的 .NET WCF 请求/响应框架。他们的示例之一是使用 MooTools 调用 JSONP 扩展,然后在 ASP.NET MVC 应用程序的页面中显示结果。

我已经修改了一个示例,它返回单个字符串来调用我创建的服务,该服务返回客户集合(来自 AdventureWorks 数据库)。

一般来说,我对 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 回答