如何在 sencha 中调用 Web 服务并解析 json?

Posted

技术标签:

【中文标题】如何在 sencha 中调用 Web 服务并解析 json?【英文标题】:How to call web service and parse json in sencha? 【发布时间】:2014-04-05 07:08:08 【问题描述】:

大家好,我正在开发 sencha 应用程序,我需要通过单击按钮调用 Web 服务,并且我需要解析 json。

我用谷歌搜索了很多,但没有得到任何分步教程。我对 sencha 很陌生,需要一个分步教程来调用 Web 服务并在 sencha touch 中解析 json。

我也尝试了以下代码:

我的功能:

    getDetails: function()

               alert("Hi Welcome To Sencha");
                    Ext.Ajax.request(
                        method: 'GET',
                        url: 'http://www.aswaq.se/web_ajax_disp.php?fid=100&n=rt&p=rt',
                        params:  method: 'Helloworld', format: 'json' ,
                        success: function (response, request) 
                            alert('Working!')
                            alert(response.responseText)
                            console.log('Response:-' + response.responseText)
                        ,
                        failure: function (response, request) 
                            alert('Not working!')
                            console.log('Response Status:- ' + response.status)
                        
                   );
        

我们将不胜感激。

【问题讨论】:

【参考方案1】:

对您的问题的简单直接的回答是:

Ext.Ajax.request(
    method: 'GET',
    url: 'http://www.aswaq.se/web_ajax_disp.php?fid=100&n=rt&p=rt',
    params:  method: 'Helloworld', format: 'json' ,
    success: function (response, request) 
        alert('Working!')
        var jsonData = Ext.util.JSON.decode(response.responseText);
    ,
    failure: function (response, request) 
        alert('Not working!')
        console.log('Response Status:- ' + response.status)
    
);

但是 sencha touch 2 和 extjs 指南建议使用stores: 它看起来像这样:

 var myStore = Ext.create("Ext.data.Store", 
    model: "User",
    proxy: 
        type: "ajax",
        url : "/users.json",
        reader: 
            type: "json",
            rootProperty: "users"
        
    ,
    autoLoad: true
);

当您加载商店时,它会自动调用其中指定的正确 url,并根据您指定的模型(模型:用户)加载里面的数据。 您可以使用 2 种方法来加载商店: 像示例中一样设置 autoLoad:true 并让商店在加载到您的应用程序时加载 需要时调用 myStore.load()

【讨论】:

以上是关于如何在 sencha 中调用 Web 服务并解析 json?的主要内容,如果未能解决你的问题,请参考以下文章

如何在sencha中解析xml文件并获取标签值

为用户和身份验证使用解析服务器并调用其他内部 REST Web 服务

Sencha touch 基本概念和网络服务器

Sencha Touch 和 WordPress BuddyPress API 之间的 JSON 解析问题

kettle调用一个web service 如何将返回的json字符串解析并放入数据表中

Sencha touch XML 对 JSON 的响应