前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python JS Jquery Jso

Python JS Jquery Jso

作者头像
py3study
发布2020-01-09 16:49:27
1.6K0
发布2020-01-09 16:49:27
举报
文章被收录于专栏:python3python3

一、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/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档