现在越来越多的服务或者是 ajax 的请求,返回的数据都是json对象了。有点疑问,按理说传输字符串应该应该比传json对象应该更快些,为什么现在都在用json对象。难道仅仅是因为json对象在服务端和客户端操作都非常方便的原因吗?求高手指点。
不一定正确,我的理解是:ajax的实现基础是XMLHttpRequest对象,该对象只有responseText和responseXML两个属性值来获取返回的内容,可见并没有可以直接获取json对象的属性或方法。所以jQuery或者其他js库肯定都是在此基础上包装了一下,自己实现了获取json对象的方法
楼上分析得很对。其实json本身就是字符串。
json 本身就是字符串的话,为什么返回回来的json通过 js 可以直接用 对象名称.属性名称 获取到相应的数据。而如果是真正普通的字符串的话,在 客户的 是无法通过 对象名称.属性名称 获取到值的。
@yzy: 是浏览器或是jquery把它转为了对象。我就经常写var json = eval('(' + data + ')');这样的代码。把字符串变对象。
返回的肯定是字符串啊。谁听说过远程服务可以返回对象的?都是返回字符串,再回接收的机器反序列化为相应的对象。
Json相对于NET中传统的对象序列化来说有个优点,就是没有命名空间的拖累。
没有对象属性的拖累,随时随地可以添加属性。
你这是基础知识有问题。