加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ajax使用JSON格式

发布时间:2020-12-16 03:31:16 所属栏目:百科 来源:网络整理
导读:JSON只是一种文本字符串,他被存储在responseText属性中,为了读取存储在responseText属性中的JSON数据,需要根据JavaScript中的eval语句。函数eval会把一个字符串当做它的参数。然后这个字符串会被当作JavaScript代码来执行。因此JSON的字符串就是由JavaScr

JSON只是一种文本字符串,他被存储在responseText属性中,为了读取存储在responseText属性中的JSON数据,需要根据JavaScript中的eval语句。函数eval会把一个字符串当做它的参数。然后这个字符串会被当作JavaScript代码来执行。因此JSON的字符串就是由JavaScript代码构成的,所以它本身是可执行的。


使用smarty。调用userService对象方法,$userList=userService.getUsersList();使用了smarty

①json格式如下:"{属性名:属性值,属性名:属性值 }"

因为json的数据是原生态的,最简单的,因此这种数据格式很稳定,而且描述能力强。建议使用 json 格式。

②json数据的扩展,可以用来传递数组

规则:

1)映射用冒号":" 表示。名称:值。

2)并列的数据之间用“,”分隔。名称1:值1,名称2:值2

3)映射的集合(对象)用大括号“{}”表示。{名称1:值1,名称2:值2}

4)并列数据的集合(数组)用方括号“[]”表示。

[

{名称1:值1,名称2:值2},

{名称1:值1,名称2:值2}

]

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,最通用的数据格式。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读