    DataWriter
      JsonWriter

# Class Ext.data.JsonWriter

Package: | Ext.data
Defined In: | JsonWriter.js
Class: | JsonWriter
Extends: | DataWriter

DataWriter extension for writing an array or single Ext.data.Record object(s) in preparation for executing a remote CRUD action.

## Config Options

Config Options | Defined By
--- | ---
| createRecord : Function Abstract method that should be implemented in all subclasses (e.g.: JsonWriter.createRecord) | DataWriter
| destroyRecord : Function Abstract method that should be implemented in all subclasses (e.g.: JsonWriter.destroyRecord) | DataWriter
| encode : Boolean true to encode the hashed data. Defaults to true. When using Ext.data.DirectProxy, set this to false since Ext.Direc... `true` to encode the hashed data. Defaults to `true`. When using Ext.data.DirectProxy, set this to `false` since Ext.Direct.JsonProvider will perform its own json-encoding. In addition, if you're using Ext.data.HttpProxy, setting to `false` will cause HttpProxy to transmit data using the jsonData configuration-params of Ext.Ajax.request instead of params. When using a Ext.data.Store.restful Store, some serverside frameworks are tuned to expect data through the jsonData mechanism. In those cases, one will want to set encode: `false`, as in let the lower-level connection object (eg: Ext.Ajax) do the encoding. | JsonWriter
| listful : Boolean false by default. Set true to have the DataWriter always write HTTP params as a list, even when acting upon a single... `false` by default. Set `true` to have the DataWriter always write HTTP params as a list, even when acting upon a single record. | DataWriter
| returnJson : Boolean Deprecated, will be removed in Ext-3.0.1. Use Ext.data.JsonWriter.encode instead. | JsonWriter
| updateRecord : Function Abstract method that should be implemented in all subclasses (e.g.: JsonWriter.updateRecord | DataWriter
| writeAllFields : Boolean false by default. Set true to have DataWriter return ALL fields of a modified record -- not just those that changed.... `false` by default. Set `true` to have DataWriter return ALL fields of a modified record -- not just those that changed. `false` to have DataWriter only request modified fields from a record. | DataWriter

## Public Properties

This class has no public properties.

## Public Methods

Method | Defined By
--- | ---
| apply( `Object params`, `Object baseParams`, `String action`, `Record/Record[] rs` ) : void Compiles a Store recordset into a data-format defined by an extension such as Ext.data.JsonWriter or Ext.data.XmlWrit... Compiles a Store recordset into a data-format defined by an extension such as Ext.data.JsonWriter or Ext.data.XmlWriter in preparation for a server-write action. The first two params are similar similar in nature to Ext.apply, Where the first parameter is the receiver of paramaters and the second, baseParams, the source. Parameters: `params` : Object The request-params receiver. `baseParams` : Object as defined by Ext.data.Store.baseParams. The baseParms must be encoded by the extending class, eg: Ext.data.JsonWriter, Ext.data.XmlWriter. `action` : String [create|update|destroy] `rs` : Record/Record[] The recordset to write, the subject(s) of the write action. Returns: void | DataWriter
| createRecord( `Ext.data.Record rec` ) : Object Implements abstract Ext.data.DataWriter#createRecord Implements abstract Ext.data.DataWriter#createRecord Parameters: `rec` : Ext.data.Record Returns: `Object` | JsonWriter
| destroyRecord( `Ext.data.Record rec` ) : Object Implements abstract Ext.data.DataWriter#destroyRecord Implements abstract Ext.data.DataWriter#destroyRecord Parameters: `rec` : Ext.data.Record Returns: `Object` | JsonWriter
| render( `Object http`, `Object baseParams`, `Object/Object[] data` ) : void Final action of a write event. Apply the written data-object to params. Final action of a write event. Apply the written data-object to params. Parameters: `http` : Object params-object to write-to. `baseParams` : Object as defined by Ext.data.Store.baseParams. The baseParms must be encoded by the extending class, eg: Ext.data.JsonWriter, Ext.data.XmlWriter. `data` : Object/Object[] Data-object representing compiled Store-recordset. Returns: void | JsonWriter
| toArray( `Hash data` ) : [Object] Converts a Hashed Ext.data.Record to fields-array array suitable for encoding to xml via XTemplate, eg: &lt;tpl for="... Converts a Hashed Ext.data.Record to fields-array array suitable for encoding to xml via XTemplate, eg: `
    <tpl for="."><{name}>{value}</{name}</tpl>
` eg, non-phantom: `
    {id: 1, first: 'foo', last: 'bar'} --> [{name: 'id', value: 1}, {name: 'first', value: 'foo'}, {name: 'last', value: 'bar'}]
` Phantom records will have had their idProperty omitted in toHash if determined to be auto-generated. Non AUTOINCREMENT pks should have been protected. Parameters: `data` : Hash Hashed by Ext.data.DataWriter#toHash Returns: `[Object]` Array of attribute-objects. | DataWriter
| toHash( `Ext.data.Record` , `Object config` ) : Object Converts a Record to a hash, taking into account the state of the Ext.data.Record along with configuration properties... Converts a Record to a hash, taking into account the state of the Ext.data.Record along with configuration properties related to its rendering, such as writeAllFields, phantom, getChanges and idProperty Parameters: `` : Ext.data.Record `config` : Object NOT YET IMPLEMENTED. Will implement an exlude/only configuration for fine-control over which fields do/don't get rendered. Returns: `Object` | DataWriter
| updateRecord( `Ext.data.Record rec` ) : Object Implements abstract Ext.data.DataWriter#updateRecord Implements abstract Ext.data.DataWriter#updateRecord Parameters: `rec` : Ext.data.Record Returns: `Object` | JsonWriter

## Public Events

This class has no public events.