X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6e39d509471fe9b4e2660e0d1631b350d0c66f40..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/docs/source/Json2.html diff --git a/docs/source/Json2.html b/docs/source/Json2.html new file mode 100644 index 00000000..82ab99c8 --- /dev/null +++ b/docs/source/Json2.html @@ -0,0 +1,78 @@ +
\ No newline at end of file/** + * @class Ext.data.writer.Json + * @extends Ext.data.writer.Writer + * @ignore + */ +Ext.define('Ext.data.writer.Json', { + extend: 'Ext.data.writer.Writer', + alternateClassName: 'Ext.data.JsonWriter', + alias: 'writer.json', + + /** + * @cfg {String} root The key under which the records in this Writer will be placed. Defaults to <tt>undefined</tt>. + * Example generated request, using root: 'records': +<pre><code> +{'records': [{name: 'my record'}, {name: 'another record'}]} +</code></pre> + */ + root: undefined, + + /** + * @cfg {Boolean} encode True to use Ext.encode() on the data before sending. Defaults to <tt>false</tt>. + * The encode option should only be set to true when a {@link #root} is defined, because the values will be + * sent as part of the request parameters as opposed to a raw post. The root will be the name of the parameter + * sent to the server. + */ + encode: false, + + /** + * @cfg {Boolean} allowSingle False to ensure that records are always wrapped in an array, even if there is only + * one record being sent. When there is more than one record, they will always be encoded into an array. + * Defaults to <tt>true</tt>. Example: + * <pre><code> +// with allowSingle: true +"root": { + "first": "Mark", + "last": "Corrigan" +} + +// with allowSingle: false +"root": [{ + "first": "Mark", + "last": "Corrigan" +}] + * </code></pre> + */ + allowSingle: true, + + //inherit docs + writeRecords: function(request, data) { + var root = this.root; + + if (this.allowSingle && data.length == 1) { + // convert to single object format + data = data[0]; + } + + if (this.encode) { + if (root) { + // sending as a param, need to encode + request.params[root] = Ext.encode(data); + } else { + //<debug> + Ext.Error.raise('Must specify a root when using encode'); + //</debug> + } + } else { + // send as jsonData + request.jsonData = request.jsonData || {}; + if (root) { + request.jsonData[root] = data; + } else { + request.jsonData = data; + } + } + return request; + } +}); +