JSON只是一种文本字符串,他被存储在responseText属性中,为了读取存储在responseText属性中的JSON数据,需要根据JavaScript中的eval语句。函数eval会把一个字符串当做它的参数。然后这个字符串会被当作JavaScript代码来执行。因此JSON的字符串就是由JavaScript代码构成的,所以它本身是可执行的。
使用smarty。调用userService对象方法,$userList=userService.getUsersList();使用了smarty
①json格式如下:"{属性名:属性值,属性名:属性值 }"
因为json的数据是原生态的,最简单的,因此这种数据格式很稳定,而且描述能力强。建议使用 json 格式。
②json数据的扩展,可以用来传递数组
规则:
1)映射用冒号":" 表示。名称:值。
3)映射的集合(对象)用大括号“{}”表示。{名称1:值1,名称2:值2}
4)并列数据的集合(数组)用方括号“[]”表示。
[
]
var dogs=[{},{}];
若是服务器返回的是多组数据,格式应当如下:
"[ {'属性名':'属性值' , '属性名':‘属性值’},{'属性名':'属性值' , '属性名':‘属性值’} ]";
在xmlhttprequest对象接收到 json 数据后,应当这样处理
// 转化为对象数组,每个成员的属性不必相同。
var reses=eval("("+xmlHttpRequest.responseText+")");
通过reses可以取得你希望的任何一个值。
reses[?].属性名 //下标从0开始
更为复杂的数据格式,数组成员可以有复杂的,也可以同时包含简单的:
<script language="JavaScript"> var people ={ "programmers": [ {"firstName": "Brett","email": "brett@newInstance.com" },{"firstName": "Jason","email": "jason@servlets.com" } ],"writer": [ {"writer":"宋江","age":"50"},{"writer":"吴用","age":"30"} ],"sex":"男" }; window.alert(people.programmers[0].firstName); window.alert(people.programmers[1].email); window.alert(people.writer[1].writer); window.alert(people.sex); </script>
json优点:
JSON与XML相似,而且更加灵巧。
JSON不需要从服务器端发送含有特定内容类型的首部信息。
缺点:
eval函数存在风险。若是对安全要求不是特别高,则可以使用这种。
当一个ajax请求到服务器,服务器可以根据需求返回,三种格式的数据,那么选哪一种?
1.若是项目经理没有特殊需求,建议使用json,性能和文件大小有优势。
2.若是数据只是简单文本,则可以直接用html。
3.若是不能确定,数据是否只给浏览器用(还有可能给其它程序使用),应该使用xml,最通用的数据格式。