`

[转载]EXT核心API详解Ext.data(十)-DataReader/ArrayReader/JsonReader/XmlReader javascript

    博客分类:
  • EXT
阅读更多
Ext.data.DataReader

纯虚类,从数据源得到结构化数据转换为元数据对象,对象包含Record的集合,一般用做Store对象的元数据,

具有如下格式

{

totalRecord:int,

records:Array of Ext.data.Record

}

具体使用参见三个子类

Ext.data.ArrayReader/Ext.data.JsonReader/Ext.data.XmlReader

方法

DataReader( Object meta, Object recordType )

构造

Ext.data.ArrayReader

用于读数组到一个元数据对象

ArrayReader( Object meta, Object recordType )

构造,第一个参数是配置除了可以指示使用哪个字段做id外,不懂其它的用法,

第二个参数是recordType与record对象的create方法的参数一样,是一样config对象数组,具体参见

readRecords( Object o ) : Object

读取o,返回一个元数据对象

用例示范:

//定义数组

var arr=[ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ];

var reader = new Ext.data.ArrayReader(

//以第一个元素做为recordid

   {id: 0},

//定义数组到record的映射关系

   [

    {name: 'name', mapping: 1},        

    {name: 'occupation', mapping: 2}   

   ]

);

//生成元数据

var data=reader.readRecords(arr);

Ext.data.JsonReader

用于将一个json对象转换为元数据对象

JsonReader( Object meta, Object recordType )

JsonReader的构造参数meta可以有更多选择,

{

id : String,

root : String,

successProperty : String,

totalProperty : String

}

都是对应json对象的属性名

read( Object response ) : Object

从一个response对象返回,response.responseText属性应仅含有一个json格式数据块

readRecords( Object o ) : Object

读取o,返回一个元数据对象

使用示例:

     var json={ 'results': 2, 'rows': [

    { 'id': 1, 'name': 'Bill', occupation: 'Gardener' },

    { 'id': 2, 'name': 'Ben', occupation: 'Horticulturalist' } ]

};

    var reader=new Ext.data.JsonReader(

        {

        totalProperty: "results",//totalRecords属性由json.results得到

        root: "rows",            //构造元数据的数组由json.rows得到

        id: "id"                //id由json.id得到

        },[

        {name: 'name', mapping: 'name'},

        {name: 'occupation'}            //如果name与mapping同名,可以省略mapping

        ]

    )

    var data=reader.readRecords(json);

Ext.data.XmlReader

xmlreader对象当然是为xml而准备的

构造:

XmlReader( Object meta, Mixed recordType )

meta与jsonreader类似,

meta是一个{

    id : String,

    record : String,

    success : String,

    totalRecords : String

}对象,只是这些字符串都是相对于文档根目录的domquery路径

read( Object response ) : Object

readRecords( Object doc ) : Object

....

var str=["<?xml version=\"1.0\" encoding=\"utf-8\" ?>",

    "<dataset>",

"<results>2</results>",

"<row>",

   "<id>1</id>",

   "<name>Bill</name>",

   "<occupation>Gardener</occupation>",

"</row>",

"<row>",

   "<id>2</id>",

   "<name>Ben</name>",

   "<occupation>Horticulturalist</occupation>",

"</row>",

"</dataset>"].join("");

//生成xmldocument对象

var xmlDocument;

if(Ext.isIE){

    xmlDocument = new ActiveXObject("Msxml2.FreeThreadedDOMDocument")

    xmlDocument.async=false;

    xmlDocument.resolveExternals = false;

    xmlDocument.loadXML(str)

}

else{

   xmlDocument = (new DOMParser()).parseFromString(str, "text/xml");

}

//然后开始...和其它两个reader一样的用法,只是这儿换了一种写法,recordtype也可以是一个record对象

var record = Ext.data.Record.create([

   {name: 'name', mapping: 'name'},     // "mapping" property not needed if it's the same as "name"

   {name: 'occupation'}                 // This field will use "occupation" as the mapping.

])

var reader = new Ext.data.XmlReader({

   totalRecords: "results",

   record: "row",           //row是节点选择器

   id: "id"                

}, record);

var data=reader.readRecords(xmlDocument);
分享到:
评论

相关推荐

    EXT核心API详解

    EXT核心API详解 1、Ext类 ………………………………… 2 2、Array类 …………………………… 4 3、Number类 …………………………… 4 4、String类 …………………………… 4 5、Date类 ……………………………… 5 ...

    EXT核心API详解.doc

    EXT核心API详解主要涵盖了一系列与EXT.js库相关的类和对象,EXT.js是一个强大的JavaScript UI框架,用于构建富客户端Web应用程序。以下是对各个类的详细解释: 1. **Ext类**:EXT库的基础类,提供了许多实用的方法...

    extjs核心api详解.doc

    这部分讲解了数据连接(Connection/Ajax)、数据代理(DataProxy,如HttpProxy、MemoryProxy、ScriptTagProxy)、数据读取器(DataReader,如ArrayReader、JsonReader、XmlReader)以及数据存储(Store)的使用。...

    etjs核心api详解免费范文精选.docx

    文档标题和描述中提到的"etjs核心API详解"很可能是指EXT JS,这是一个基于JavaScript的富客户端应用开发框架,主要用于构建桌面级Web应用程序。EXT JS提供了丰富的组件库和数据管理功能,其核心API是框架的核心部分...

    基于extjs的.NET3.5控件Coolite 1.0.0.34580(Preview预览版)

    31. ArrayReader: added IDProperty and IDIndex (instead of ReaderID) 32. Renamed StoreResponseData class .TotalCount property to .Total. 33. Renamed StoreRefreshDataEventArgs class .TotalCount ...

    extjs学习资源

    - **数据读取器**: `DataReader`、`ArrayReader`、`JsonReader`和`XmlReader`用于解析不同格式的数据源。 - **数据存储**: `Store`用于管理数据集,而`GroupingStore`、`JsonStore`和`SimpleStore`提供了更高级的...

    ExtJS入门教程(超级详细)

    31、Ext.data.DataReader类 ……………26 32、Ext.data.ArrayReader类 …………… 26 33、Ext.data.JsonReader类 …………… 26 34、Ext.data.XmlReader类 …………… 27 35、Ext.data.Store类 …………………… 28 ...

    EXTJS___API详解

    **DataReader, ArrayReader, JsonReader, XmlReader 类**:数据读取器,用于解析不同格式的服务器响应数据。 29-34. **Store, GroupingStore, SimpleStore, Tree, Node 类**:数据存储类,管理数据集,支持分组、...

    精通JS脚本之ExtJS框架.part1.rar

    13.6.2 Ext.data.ArrayReader 13.6.3 Ext.data.JsonReader 13.6.4 Ext.data.XmlReader 13.7 Ext.ux.DWR 13.7.1 Ext.data.DwrProxy 13.7.2 Ext.data.DWRTreeLoader 13.7.4 Web服务端配置 13.7.5 服务层接口 ...

    精通JS脚本之ExtJS框架.part2.rar

    13.6.2 Ext.data.ArrayReader 13.6.3 Ext.data.JsonReader 13.6.4 Ext.data.XmlReader 13.7 Ext.ux.DWR 13.7.1 Ext.data.DwrProxy 13.7.2 Ext.data.DWRTreeLoader 13.7.4 Web服务端配置 13.7.5 服务层接口 ...

    Ext数据模型Store

    EXT提供了如`XmlReader`、`JsonReader`和`ArrayReader`等不同的Reader,它们能解析不同格式的数据,并将解析结果转化为Record对象,Record是数据集中的单条记录,包含一系列定义好的DataField,每个DataField定义了...

Global site tag (gtag.js) - Google Analytics