2012-05-30 38 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: {}

感謝您的幫助。