 <p>You don't specify, but assuming that JSON string is what your ajax code is receiving as the response, then you're actually re-JSONing that text, so it becomes a double-encoded string.</p> <p>jquery can auto-decode that back to a native structure for you, if you tell is that you're expecting json as a response, e.g.</p> <pre><code>$.ajax({ dataType: 'json', etc... }); </code></pre> <p>then you'd simply have</p> <pre><code>alert(result[0]['key']); </code></pre> <p>or</p> <pre><code>data = jquery.parseJSON(result); alert(data[0]['key']); </code></pre>