最近在学习JSON,查阅了网上很多有关的文章,这些文章大多数是解释JSON是什么.现在对JSON是什么我也能理解了,但不理解JSON是怎么在前后端之间具体是怎么处理和交互的?
我的理解是,在前端,例如表单内容为{"username":"abc",""password":123},首先是用js把json转化成字符串形式的' {"username":"abc",""password":123} ',然后通过GET或POST传送到后端。
后端以python为例,需要先找到这个字符串,然后利用json.loads()来把这段字符串转化成字典,然后进行下一步操作。
请问我的理解正确吗?
如果不正确,请告知正确答案,如果有简单的demo更好。
谢谢解答
浏览器端提交数据的时候一般都是通过GET或者POST方式来传输,比如/post.php?action=edit&id=1024,拿PHP来说,就是直接用$_GET和$_POST等超全局变量在任何地方访问这些用户输出的参数,比如取参数action的值,$_GET['action'].如果你是用PHP写CGI程序,那么你就需要自己获取这些参数,大概就是先URL解码,然后按&分割,再按=分割,获取参数的名和值.
上面的表单,如果勾选了3个复选框,那么提交后就对应这样的GET请求(一个数组):
如果你用POST方式的话可以在Firebug之类的工具的网络里看到这个信息,而不像GET显示在URL,并记录到Web服务器的日志里.
一般是浏览器端通过AJAX访问服务器端获取数据时,服务器端才返回JSON数据,而不是浏览器端向服务器端提交JSON数据.JSON是JS里的一种数据结构,就像数组至于PHP,而PHP可以通过json_encode/json_decode在数组和JSON之间转换,PHP里的数组不区分数字数组和字典(键值对/哈希表),PHP可以用数组保存从数据库中查出的结果集,经过数组处理后json_encode成JSON串,然后返回给浏览器.浏览器端可以用jQuery.parseJSON(data)或JSON.parse(data)或eval('(' + data + ')')把返回的JSON串转成JS对象进行操作.