设为首页 收藏本站
查看: 1245|回复: 0

[经验分享] Python JS Jquery Json 转换关系

[复制链接]

尚未签到

发表于 2018-8-4 14:03:54 | 显示全部楼层 |阅读模式
  一、JS对象与JSON格式数据相互转换
  目前的项目数据交互几乎都用JQuery,所以处理流程是:
  前端页面数据-》JS对象-》jQuery提交-》python处理,另外一种就是倒过来。
  python肯定不能直接处理JS对象数据,所以要把JS对象转换成为python能处理的一种数据格式(通常是字典dict),同样,python取数据反馈到前端也要把字典数据转换成JS能处理的对象,这个中间转换数据格式通常就是JSON。
  1、JS对象转换成为JSON
  流程:读取前端页面数据,组装成为JS对象,并通过jQuery的$.post()方法传递给python。
  处理:引用一个json2.js文件,调用JSON.stringify()方法。例如:var data = new Object(); var json_data = JSON.stringify(data);
  读取:python这里就很简单了,用dict_data = json.loads(json_data)就OK了
  2、JSON转换成为JS
  流程:python组装一个dict数据并转成JSON格式传递给前端,或者前端通过jQuery的$.getJSON()方法直接读取这个JSON格式的数据
  处理:用jQuery的一个方法$.parseJSON()将JSON格式的数据转成JS对象。例如:var json_data = $.getJSON(); var data = $.parseJSON(json_data);
  读取:JS对像的操作就不必多说了
  这里,python要把字典转换成JSON格式数据,用json.dumps()这个方法就行了
  PS:json2.js这个文件在网上搜一下就能下载到。
  下载地址
  http://www.json.org/json-zh.html
  二、使用Javascript/jQuery将javascript对象转换为json格式数据.
  Javascript自带的eval()函数能够将json数据转换成Javascript对象。但是,却没有提供将Javascript对象序列化为json格式的函数。
  [javascript] view plaincopy
  01.var json = '{"name":"John"}';
  02.var obj = eval( '(' + json + ')' );
  03.alert( obj.name );
  jQuery中可以使用$.parseJSON(json)来将json转换为Javascript对象,但却没有提供将Javascript对象转换成json的函数。
  [javascript] view plaincopy
  01.var json = '{"name":"John"}';
  02.var obj = $.parseJSON(json);
  03.alert( obj.name );
  如果我们要把Javascript对象转化成json,发送给服务器,该怎么办呢?
  其实很简单,可以使用jquery.json插件。
  插件下载地址:http://code.google.com/p/jquery-json/
  当前版本如下:jquery.json-2.4.js (压缩版:jquery.json-2.4.min.js)
  该插件提供了4个函数,用于解析和反解析json,具体如下:
  .toJSON:将javascript的object, number, string, 或 array 转换成 JSON数据。
  .evalJSON:把JSON格式数据转换成Javascript对象,速度很快,不过这点速度微不足道(作者自己说的)。
  .secureEvalJSON:把JSON 转换成 Javascript对象,但是转换之前会检查被转换的数据是否是 JSON格式的。
  .quoteString:在字符串两端添加引号,并智能转义(跳过)任何引号,反斜杠,或控制字符。
  使用例子(注意需要和jQuery核心库结合使用):
  [javascript] view plaincopy
  01.var obj = {"plugin":"jquery-json","version":2.4};
  02.//json = '{"plugin":"jquery-json","version":2.4}'
  03.var json = $.toJSON( obj );
  04.// 得到name值为:"jquery-json"
  05.var name = $.evalJSON( json ).plugin;
  06.// 得到version值为:2.4
  07.var version = $.evalJSON( json ).version;
  jQuery核心库下载地址:http://jquery.com/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-546554-1-1.html 上篇帖子: python通用论坛正文提取\python论坛评论提取\python论坛用户信息提取 下篇帖子: python解决project euler题目的乐趣
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表