6.よく使うReader


  Reader ArrayReader

 proxy            ,       Record        Ext.data. Store  。
ArrayReader                ,       Record。
                  ,         mapping  record          。
ArrayReader      ,         。
                 :

 
  1. var data = [  
  2.     ['id1','name1','descn1'],  
  3.     ['id2','name2','descn2']  
  4. ];  
ArrayReader :
  1. var reader = new Ext.data.ArrayReader({  
  2.     id:1  
  3. },[  
  4.     {name:'name',mapping:1},  
  5.     {name:'descn',mapping:2},  
  6.     {name:'id',mapping:0},  
  7. ]);  
Reader JsonReader JavaScript ,JSON ,key:value XML , , EXT 。 Json- Reader JSON :
  1. var data = {  
  2.     id:0,  
  3.     totalProperty:2,  
  4.     successProperty:true,  
  5.     root:[  
  6.         {id:'id1',name:'name1',descn:'descn1'},  
  7.         {id:'id2',name:'name2',descn:'descn2'}  
  8.     ]  
  9. };  
,JSON , totalProperty 。 successProperty , , 。 JsonReader , successProperty false。 JsonReader, JSON , :
  1. var reader = new Ext.data.JsonReader({  
  2.     successProperty: "successproperty",  
  3.     totalProperty: "totalProperty",  
  4.     root: "root",  
  5.     id: "id"  
  6. }, [  
  7.     {name:'id',mapping:'id'},  
  8.     {name:'name',mapping:'name'},  
  9.     {name:'descn',mapping:'descn'}  
  10. ]);  
, name mapping , mapping , name JSON 。 JSON , mapping 。 ,mapping , :
  1. var data = {  
  2.     id:0,  
  3.     totalProperty:2,  
  4.     successProperty:true,  
  5.     root:[  
  6.         {id:'id1',name:'name1',descn:'descn1',person:{  
  7.             id:1,name:'man',sex:'male'  
  8.         }},  
  9.         {id:'id2',name:'name2',descn:'descn2',person:{  
  10.             id:2,name:'woman',sex:'female'  
  11.         }}  
  12.     ]  
  13. };  
  14. var reader = new Ext.data.JsonReader({  
  15.     successProperty: "successproperty",  
  16.     totalProperty: "totalProperty",  
  17.     root: "root",  
  18.     id: "id"  
  19. }, [  
  20.     'id','name','descn',  
  21.     {name:'person_name',mapping:'person.name'},  
  22.     {name:'person_sex',mapping:'person.sex'}  
  23. ]);  
, JSON , person id、 name sex 。 JsonReader mapping , record, 。 Reader XmlReader XML ,XmlReader XML :
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <dataset>  
  3.     <id>1</id>  
  4.     <totalRecords>2</totalRecords>  
  5.     <success>true</success>  
  6.     <record>  
  7.         <id>1</id>  
  8.         <name>name1</name>  
  9.         <descn>descn1</descn>  
  10.     </record>  
  11.     <record>  
  12.         <id>2</id>  
  13.         <name>name2</name>  
  14.         <descn>descn2</descn>  
  15.     </record>  
  16. </dataset>  
dataset XML 。 XmlReader , XML , :
  1. var reader = new Ext.data.XmlReader({  
  2.    totalRecords: 'totalRecords',  
  3.    success: 'success'  
  4.    record: 'record',  
  5.    id: "id"  
  6. }, ['id','name','descn']);  
XmlReader JsonReader , totalRecords record , totalRecords ’totalRecords’ ,record XML record 。 success id JsonReader , id。 XML reader , , [{name:’id’},{name:’name’},{name:’descn’}] [‘id’,’name’,’descn’]。 XmlReader JavaScript XML , 。 localXHR.js XML , , :
  1. var data = "<?xml version='1.0' encoding='utf-8'?>" +  
  2.     "<dataset>" +  
  3.         "<id>1</id>" +  
  4.         "<totalRecords>2</totalRecords>" +  
  5.         "<success>true</success>" +  
  6.         "<record>" +  
  7.             "<id>1</id>" +  
  8.             "<name>name1</name>" +  
  9.             "<descn>descn1</descn>" +  
  10.         "</record>" +  
  11.         "<record>" +  
  12.             "<id>2</id>" +  
  13.             "<name>name2</name>" +  
  14.             "<descn>descn2</descn>" +  
  15.         "</record>" +  
  16.     "</dataset>";  
  17.    
  18. var xdoc;  
  19.    
  20. if(typeof(DOMParser) == 'undefined'){  
  21.     xdoc = new ActiveXObject("Microsoft.XMLDOM");  
  22.     xdoc.async="false";  
  23.     xdoc.loadXML(data);  
  24. }else{  
  25.     var domParser = new DOMParser();  
  26.     xdoc = domParser.parseFromString(data, 'application/xml');  
  27.     domParser = null;  
  28. }  
  29.    
  30. var proxy = new Ext.data.MemoryProxy(xdoc);  
  31.    
  32. var reader = new Ext.data.XmlReader({  
  33.     totalRecords: 'totalRecords',  
  34.     success: 'success',  
  35.     record: 'record',  
  36.     id: "id"  
  37. }, ['id','name','descn']);  
  38.    
  39. var ds = new Ext.data.Store({  
  40.     proxy: proxy,  
  41.     reader: reader  
  42. });