 <p>The problems with the code in my initial attempt were:</p> <ol> <li>the read() method should return a value, so it should say:</li> </ol> <pre><code>return this.callParent([object]); </code></pre> <ol> <li><p>The alias should have been <code>'reader.my-json'</code></p></li> <li><p>The results needed to be mapped because it was an array:</p></li> </ol> <pre><code>object.Results = Ext.Array.map(object.Results, Ext.decode); </code></pre> <p>With those fixed, the store can use the simpler reader definition:</p> <pre><code>reader: { type: 'my-json', root: 'Results', totalProperty: 'Total' } </code></pre> <p>But see the complete test case in the original question for the full code. I apologize for not having thoroughly tested the code I initially proposed.</p>