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

时间:2014-04-05 07:08:09

标签: android json sencha-touch sencha-touch-2 cross-platform

大家好,我正在研究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 个答案:

答案 0 :(得分: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并根据您指定的型号(型号:用户)加载数据。 您可以使用两种方法来加载商店: 设置autoLoad:true就像在示例中一样,让商店加载到你的应用程序中时加载 你想要的时候调用myStore.load()