将数据从json加载到extjs

时间:2012-07-13 11:31:54

标签: json extjs load store

我想将一个值从json加载到extjs应用程序中的var中。 json输出看起来像这样

{"rechten":[{"name":"baas"}]}

如果我想在商店中使用它,我知道该怎么做,但我之前只使用它。我想要像这样的

 var rechten = "baas";

所以我可以将其检查成其他内容:

if(rechten == "baas") { alert('je bent de baas') } 
else { alert('helaas je bent arbeider')};

所以我的问题是如何在这个if else语句中检查json中的名称值?

3 个答案:

答案 0 :(得分:2)

您可以将数据加载到商店(例如store.load()),然后通过标准商店方法检查值(例如store.getAt())。

或者你可以使用Ext.AjaxExt.JSON它看起来像这样

Ext.Ajax.request({
url: 'someurl',
    success: function(response){
         var decoded = Ext.JSON.decode(response.responseText);
         console.log(decoded.rechten.name);
    }
});  

第二种方法将跳过所需的模型/商店声明,并且将超出EXTJS MVC数据概念,但是为了快速简便的数据处理应该可以使用。

答案 1 :(得分:1)

Ext.Ajax.request({
   url: 'your_url_here',
   success: function(response, opts) {
      var o = Ext.decode(response.responseText);
      alert(o.rechten[0].name); // alerts "baas"
   },
   failure: function(response, opts) {
      console.log('server-side failure with status code ' + response.status);
   }
});

答案 2 :(得分:1)

如果您的json字符串来自名为page-with-rechten.xyz的文件,则此代码段可以调用该文件,然后解码创建JavaScript对象的文本,然后您可以使用该属性。

您可以在控制台中检查rechten对象,然后添加其他逻辑

Ext.Ajax.request({
    url: './page-with-rechten.xyz',
    success: function(response){
        var text,
            rechten;
        text = response.responseText;
        console.log('response text: ', text);
        rechten = Ext.decode(text);
        console.log('rechten object: ', rechten);        
    }
});