JSON is a way of writing javascript in a short hand format.
<script language="javascript">
var testa = [ 1,2,3,4,5]; //array
alert( "testa " + testa.length );
var jsona = "[1,2,3,4,5]";//can be an ajax response string
var testb = eval( "(" + jsona + ")" );
alert( "testb " + testb.length );
var testc = { "monkey" : "testc bananas" };//object
alert( testc.monkey );
var jsonb = "{ 'monkey' : 'testd bananas' }";//can be an ajax response string
var testd = eval( "(" + jsonb + ")" );
alert( testd.monkey );
</script>
Javascript like actionscript 1 uses objects that are fundementally arrays( hence they are not fussy about stuff being shoved in them willy nilly). Arrays that can have functionality assigned to indexes. The benefits of using JSON over XML is it is smaller( the whole open and close tags things can add a lot or size ) and also that it compiles once very fast due to being in a native format for javascript. The limit imposed by performance issues will be closer to if it had just been typed and exectuted.
XML is not really a native format for anything due to the whole idea is it is system independant. Speed is sacrified for the flexibility, how much speed is down to the efficiency of the interpretation.
The easiest way to look at it is would you pass xml to a php function from another one when you could just pass a normal value? JSON allows you to pass normal values to javascript.
Google give you the option of JSON or XML for their GDATA apis.
http://code.google.com/apis/gdata/json.html
I am doing a lot of stuff at the moment using Ajax and I switched to pure JSON as I was getting lags as the data got more complex.