X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6e39d509471fe9b4e2660e0d1631b350d0c66f40..e9397f91ede62d446aed37d23256e8938fc4c335:/docs/source/JsonReader.html diff --git a/docs/source/JsonReader.html b/docs/source/JsonReader.html index e6c1b52c..11ce02f1 100644 --- a/docs/source/JsonReader.html +++ b/docs/source/JsonReader.html @@ -1,12 +1,18 @@ - -
- -/** + + + ++ \ No newline at end of fileThe source code + + + + +/*! + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license + */ +/** * @class Ext.data.JsonReader * @extends Ext.data.DataReader *- +Data reader class to create an Array of {@link Ext.data.Record} objects @@ -25,7 +31,7 @@ var myReader = new Ext.data.JsonReader({ // constructor that provides mapping for reading the record data objects {@link Ext.data.DataReader#fields fields}: [ // map Record's 'firstname' field to data object's key of same name - {name: 'name'}, + {name: 'name', mapping: 'firstname'}, // map Record's 'job' field to data object's 'occupation' key {name: 'job', mapping: 'occupation'} ] @@ -167,13 +173,16 @@ Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, { return this.readRecords(o); }, -
/** - * Decode a json response from server. - * @param {String} action [Ext.data.Api.actions.create|read|update|destroy] - * @param {Object} response + /* * 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. */ + /** + * Decode a JSON response from server. + * @param {String} action [Ext.data.Api.actions.create|read|update|destroy] + * @param {Object} response The XHR object returned through an Ajax server request. + * @return {Response} A {@link Ext.data.Response Response} object containing the data response, and also status information. + */ readResponse : function(action, response) { var o = (response.responseText !== undefined) ? Ext.decode(response.responseText) : response; if(!o) { @@ -300,14 +309,20 @@ Ext.extend(Ext.data.JsonReader, Ext.data.DataReader, { createAccessor : function(){ var re = /[\[\.]/; return function(expr) { - try { - return(re.test(expr)) ? - new Function('obj', 'return obj.' + expr) : - function(obj){ - return obj[expr]; - }; - } catch(e){} - return Ext.emptyFn; + if(Ext.isEmpty(expr)){ + return Ext.emptyFn; + } + if(Ext.isFunction(expr)){ + return expr; + } + var i = String(expr).search(re); + if(i >= 0){ + return new Function('obj', 'return obj' + (i > 0 ? '.' : '') + expr); + } + return function(obj){ + return obj[expr]; + }; + }; }(), @@ -349,6 +364,6 @@ Ext.apply(Ext.data.JsonReader.Error.prototype, { 'root-empty': 'Data was expected to be returned by the server in the "root" property of the response. Please review your JsonReader configuration to ensure the "root" property matches that returned in the server-response. See JsonReader docs.' } }); -