首页 新闻 会员 周边 捐助

为什么现在的rest服务请求返回的都是JSON对象而不是直接范围字符串

0
[待解决问题]

现在越来越多的服务或者是 ajax 的请求,返回的数据都是json对象了。有点疑问,按理说传输字符串应该应该比传json对象应该更快些,为什么现在都在用json对象。难道仅仅是因为json对象在服务端和客户端操作都非常方便的原因吗?求高手指点。

yzy的主页 yzy | 菜鸟二级 | 园豆:317
提问于:2014-11-14 19:29
< >
分享
所有回答(4)
0

不一定正确,我的理解是:ajax的实现基础是XMLHttpRequest对象,该对象只有responseText和responseXML两个属性值来获取返回的内容,可见并没有可以直接获取json对象的属性或方法。所以jQuery或者其他js库肯定都是在此基础上包装了一下,自己实现了获取json对象的方法

ThreeTree | 园豆:1490 (小虾三级) | 2014-11-14 20:02
0

楼上分析得很对。其实json本身就是字符串。

angelshelter | 园豆:9914 (大侠五级) | 2014-11-14 20:18

json 本身就是字符串的话,为什么返回回来的json通过 js 可以直接用   对象名称.属性名称  获取到相应的数据。而如果是真正普通的字符串的话,在 客户的 是无法通过 对象名称.属性名称  获取到值的。

支持(0) 反对(0) yzy | 园豆:317 (菜鸟二级) | 2014-11-15 22:08

@yzy: 是浏览器或是jquery把它转为了对象。我就经常写var json = eval('(' + data + ')');这样的代码。把字符串变对象。

支持(0) 反对(0) angelshelter | 园豆:9914 (大侠五级) | 2014-11-15 22:18
0

返回的肯定是字符串啊。谁听说过远程服务可以返回对象的?都是返回字符串,再回接收的机器反序列化为相应的对象。

Json相对于NET中传统的对象序列化来说有个优点,就是没有命名空间的拖累。

没有对象属性的拖累,随时随地可以添加属性。

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-11-15 10:01
0

你这是基础知识有问题。

吴瑞祥 | 园豆:29449 (高人七级) | 2014-11-15 21:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册