2012-05-30 37 views
0

你好,我是JSON(格式化为更好的阅读)ExtJS的 - 网格面板没装嵌套JSON

{"status":{"status":0,"msg":"Ok","protocolversion":"extjs.json"}, 
"list":[{"getLogfiles":[ 
{"key":"0","value":"...lugin\/monitor\/files\/x_worker_error.log"}, 
{"key":"1","value":"...les\/x-worker01-progress.log.1331769600"}, 
{"key":"2","value":"...\/application\/x\/plugin\/monitor\/files\/Test.log"}, 
{"key":"3","value":"...ind\/plugin\/monitor\/files\/logfile_for_navi_test.log"}, 
{"key":"4","value":"...lugin\/monitor\/files\/logfilefilter_worker_error.log"}] 
}] 
} 

此JSON数据加载成功,我可以打印在执行console.log(),但它没有装到我的商店:

... 
    Ext.define('Xxx.plugins.monitor.store.GridLogfiles', { 
     extend : 'Ext.data.Store', 
     mixins: [ 
     'Deft.mixin.Injectable' 
     ], 

     model: 'Xxx.plugins.monitor.model.GridLogfiles', 

     proxy : { 
     type  : 'ajax', 
     url  : 'xxx', 
     extraParams: { 
      user  : 'test', 
      pass  : 'test', 
      vers  : 'extjs.json', 
      module : 'monitor', 
      func  : 'getLogfiles' 
     }, 
     reader  : { 
      type: 'json', 
      root: 'list[0].getLogfiles', 
      // root: 'list', 
      successProperty:false 
     } 
     } 
    , autoLoad: true 


    }); 
... 

我曾经尝试都root: 'list'root: 'list[0].getLogfiles

console.log()数据下找到

有什么问题?谢谢!

root: 'list'

和不断变化的JSON来:

+0

因为你的实际数据在'list'中,所以你需要设置'root:'list''。是否有可能从响应json中删除“getLogfiles”部分(将其内部数组置于'list')? –

+0

谢谢。我将只切换到“列表”。 “getLogfiles”可以更改但不能删除,这是API预期的标题。 – Patrick

+0

“列表”只能解决它。 1.我如何访问“getLogfiles”? 2.如何检查试图阅读json的商店的入口点? – Patrick

回答

0

所以我修复它

{"status":{"status":0,"msg":"Ok","protocolversion":"extjs.json"},"list":[{"key":"0","value":"...lugin\/monitor\/files\/logfilefilter_worker_error.log"},{"key":"1","value":"...les\/logfilefilter-worker01-progress.log.1331769600"},{"key":"2","value":"...\/application\/x\/plugin\/monitor\/files\/Test.log"},{"key":"3","value":"...ind\/plugin\/monitor\/files\/logfile_for_navi_test.log"},{"key":"4","value":"...lugin\/monitor\/files\/logfilefilter_worker_error.log"},{"key":"5","value":"...les\/logfilefilter-worker01-progress.log.1331769600"},{"key":"6","value":"...\/application\/x\/plugin\/monitor\/files\/Test.log"},{"key":"7","value":"...lugin\/monitor\/files\/logfilefilter_worker_error.log"},{"key":"8","value":"...les\/logfilefilter-worker01-progress.log.1331769600"},{"key":"9","value":"...\/application\/x\/plugin\/monitor\/files\/Test.log"}]} 

,并使用Ext.create(),而不是DeftJs inject: {}

感谢您的帮助。