    DataReader
      JsonReader
        ArrayReader

# Class Ext.data.ArrayReader

Package: | Ext.data
Defined In: | ArrayReader.js
Class: | ArrayReader
Extends: | JsonReader

Data reader class to create an Array of Ext.data.Record objects from an Array. Each element of that Array represents a row of data fields. The fields are pulled into a Record object using as a subscript, the `mapping` property of the field definition if it exists, or the field's ordinal position in the definition.

Example code:

    var Employee = Ext.data.Record.create([
        {name: 'name', mapping: 1},         // "mapping" only needed if an "id" field is present which
        {name: 'occupation', mapping: 2}    // precludes using the ordinal position as the index.
    ]);
    var myReader = new Ext.data.ArrayReader({
        idIndex: 0
    }, Employee);

This would consume an Array like this:

    [ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ]

## Config Options

Config Options | Defined By
--- | ---
| fields : Array/Object Either an Array of Field definition objects (which will be passed to Ext.data.Record.create, or a Record constructo... Either an Array of Field definition objects (which will be passed to Ext.data.Record.create, or a Record constructor created from Ext.data.Record.create. | DataReader
| id : Number The subscript within row Array that provides an ID for the Record. Deprecated. Use idIndex instead. | ArrayReader
| idIndex : Number The subscript within row Array that provides an ID for the Record. | ArrayReader
| idProperty : String [id] Name of the property within a row object that contains a record identifier value. Defaults to `id` | JsonReader
| messageProperty : String [undefined] Optional name of a property within a server-response that represents a user-feedback message. | DataReader
| root : String [undefined] Required. The name of the property which contains the Array of row objects. Defaults to undefined. An e... [undefined] Required. The name of the property which contains the Array of row objects. Defaults to `undefined`. An exception will be thrown if the root property is undefined. The data packet value for this property should be an empty array to clear the data or show no data. | JsonReader
| totalProperty : String [total] Name of the property from which to retrieve the total number of records in the dataset. This is only needed i... [total] Name of the property from which to retrieve the total number of records in the dataset. This is only needed if the whole dataset is not passed in one go, but is being paged from the remote server. Defaults to `total`. | JsonReader

## Public Properties

Property | Defined By
--- | ---
| buildExtractors : Object Abstract method, overridden in DataReader extensions such as Ext.data.JsonReader and Ext.data.XmlReader | DataReader
| extractData : Object Abstract method overridden in DataReader extensions such as Ext.data.JsonReader and Ext.data.XmlReader | DataReader
| extractValues : Object Abstract method overridden in DataReader extensions such as Ext.data.JsonReader and Ext.data.XmlReader | DataReader
| getId : Object Abstract method created in extension's buildExtractors impl. | DataReader
| getMessage : Object Abstract method created in extension's buildExtractors impl. | DataReader
| getRoot : Object Abstract method created in extension's buildExtractors impl. | DataReader
| getSuccess : Object Abstract method created in extension's buildExtractors impl. | DataReader
| getTotal : Object Abstract method created in extension's buildExtractors impl. | DataReader
| jsonData : Object After any data loads, the raw JSON data is available for further custom processing. If no data is loaded or there is... After any data loads, the raw JSON data is available for further custom processing. If no data is loaded or there is a load exception this property will be undefined. | JsonReader
| meta : Mixed This JsonReader's metadata as passed to the constructor, or as passed in the last data packet's `metaData` property. | JsonReader

## Public Methods

Method | Defined By
--- | ---
| ArrayReader( `Object meta`, `Array/Object recordType` ) Create a new ArrayReader Create a new ArrayReader Parameters: `meta` : Object Metadata configuration options. `recordType` : Array/Object Either an Array of Field definition objects (which will be passed to Ext.data.Record.create, or a Record constructor created from Ext.data.Record.create. Returns: void | ArrayReader
| isData( `Object data` ) : Boolean Returns true if the supplied data-hash looks and quacks like data. Checks to see if it has a key corresponding to i... Returns true if the supplied data-hash looks and quacks like data. Checks to see if it has a key corresponding to idProperty defined in your DataReader config containing non-empty pk. Parameters: `data` : Object Returns: `Boolean` | DataReader
| read( `Object response` ) : Object This method is only used by a DataProxy which has retrieved data from a remote server. This method is only used by a DataProxy which has retrieved data from a remote server. Parameters: `response` : Object The XHR object which contains the JSON data in its responseText. Returns: `Object` data A data block which is used by an Ext.data.Store object as a cache of Ext.data.Records. | JsonReader
| readRecords( `Object o` ) : Object Create a data block containing Ext.data.Records from an Array. Create a data block containing Ext.data.Records from an Array. Parameters: `o` : Object An Array of row objects which represents the dataset. Returns: `Object` data A data block which is used by an Ext.data.Store object as a cache of Ext.data.Records. | ArrayReader
| readResponse( `String action`, `Object response` ) : void Decode a json response from server. Decode a json response from server. Parameters: `action` : String [Ext.data.Api.actions.create|read|update|destroy] `response` : Object TODO: refactor code between JsonReader#readRecords, #readResponse into 1 method. there's ugly duplication going on due to maintaining backwards compat. with 2.0. It's time to do this. Returns: void | JsonReader
| realize( `Record/Record[] record`, `Object/Object[] data` ) : void Used for un-phantoming a record after a successful database insert. Sets the records pk along with new data from ser... Used for un-phantoming a record after a successful database insert. Sets the records pk along with new data from server. You must return at least the database pk using the idProperty defined in your DataReader configuration. The incoming data from server will be merged with the data in the local record. In addition, you must return record-data from the server in the same order received. Will perform a commit as well, un-marking dirty-fields. Store's "update" event will be suppressed. Parameters: `record` : Record/Record[] The phantom record to be realized. `data` : Object/Object[] The new record data to apply. Must include the primary-key from database defined in idProperty field. Returns: void | DataReader
| update( `Record/Record[] rs`, `Object/Object[] data` ) : void Used for updating a non-phantom or "real" record's data with fresh data from server after remote-save. If returning ... Used for updating a non-phantom or "real" record's data with fresh data from server after remote-save. If returning data from multiple-records after a batch-update, you must return record-data from the server in the same order received. Will perform a commit as well, un-marking dirty-fields. Store's "update" event will be suppressed as the record receives fresh new data-hash Parameters: `rs` : Record/Record[] `data` : Object/Object[] Returns: void | DataReader

## Public Events

This class has no public events.