0

我想将 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 的名称值?

4

3 回答 3

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 数据概念,但是对于快速和简单的数据处理应该可以使用。

于 2012-07-13T12:35:33.057 回答
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);
   }
});
于 2012-07-13T12:23:38.997 回答
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);        
    }
});
于 2012-07-13T12:30:24.763 回答