json是javascript标准对象记法,这是一种以文本表示javascript对象的方法。所以服务器可以向我们发送json格式的文本,不需要处理xml或者dom之类的问题,而javascript可以通过eval()方法将服务器端所传送过来的json字符串处理为一个对象。

 
eval()方法:
eval()是javascript内置的一个方法,只需要这个方法就可以把json数据转换为javascript对象,当然不用eval()方法也可以直接在服务器端解析原生文本,但是这种方法需要计算字符串长度,需要用到split()等方法。
eval()取到一个字符串,将该字符串转换成一个表达式,如果表达式的执行结果是一个具体的值,则返回这个具体的值,如类似字符串:"2+2"则返回结果4,如果字符串类似于:"{name:'xiaohong',age:20,sex:'男'}"这样的字符串,则返回的是一个对象,除以上两种情况之外,若传给eval()函数的不是字符串,则直接返回所传入的值。该方法只接受原始的字符串,如果所传入的字符串是string类型,则该方法会不作任何改变的返回一个string对象。
 
json语法规则:
1、对象--"名称/值"对的集合:一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
2、数组--"值"的有序集合:一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
说明:值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
 
   eval()函数非常快速。它可以编译执行任何JavaScript程序,因此产生了安全性问题。当使用可信任与完善的源代码时才可以使用eval函数。这样可以更安全的使用JSON解析器。使用XMLHttpRequest的web应用,页面之间的通讯只允许同源,因此是可以信任的。但这却不是完善的。如果服务器没有严谨的JSON编码,或者没有严格的输入验证,那么可能传送包括危险脚本的无效JSON文本。eval函数将执行恶意的脚本。
    介于安全性问题,我们取得一段文本,并确保他确实是一段json数据格式的数据,在此之后,就可以合理的认为能够安全的计算这个数据,并把它们转换成为一个javascript对象。
    解析数据并确保是json对象,能避免以下问题:
    1、我们可以知道这个数据可以安全的进行计算,而不是一个恶意脚本。
    2、可以确保数据不仅是json数据,而且是适当的格式的json不会导致用户遭遇任何错误。
    对于以上两个问题,json解析器可以完成这些任务,可以下载json2.js脚本,然后使用命令来解析json格式的数据:
    var item = json.parse(request.responseText);