javascript
Python JS Jquery Json 转换关系
一、JS對象與JSON格式數(shù)據(jù)相互轉(zhuǎn)換
目前的項目數(shù)據(jù)交互幾乎都用JQuery,所以處理流程是:
前端頁面數(shù)據(jù)-》JS對象-》jQuery提交-》python處理,另外一種就是倒過來。
python肯定不能直接處理JS對象數(shù)據(jù),所以要把JS對象轉(zhuǎn)換成為python能處理的一種數(shù)據(jù)格式(通常是字典dict),同樣,python取數(shù)據(jù)反饋到前端也要把字典數(shù)據(jù)轉(zhuǎn)換成JS能處理的對象,這個中間轉(zhuǎn)換數(shù)據(jù)格式通常就是JSON。
1、JS對象轉(zhuǎn)換成為JSON
流程:讀取前端頁面數(shù)據(jù),組裝成為JS對象,并通過jQuery的$.post()方法傳遞給python。
處理:引用一個json2.js文件,調(diào)用JSON.stringify()方法。例如:var data = new Object(); var json_data = JSON.stringify(data);
讀取:python這里就很簡單了,用dict_data = json.loads(json_data)就OK了
2、JSON轉(zhuǎn)換成為JS
流程:python組裝一個dict數(shù)據(jù)并轉(zhuǎn)成JSON格式傳遞給前端,或者前端通過jQuery的$.getJSON()方法直接讀取這個JSON格式的數(shù)據(jù)
處理:用jQuery的一個方法$.parseJSON()將JSON格式的數(shù)據(jù)轉(zhuǎn)成JS對象。例如:var json_data = $.getJSON(); var data = $.parseJSON(json_data);
讀取:JS對像的操作就不必多說了
這里,python要把字典轉(zhuǎn)換成JSON格式數(shù)據(jù),用json.dumps()這個方法就行了
PS:json2.js這個文件在網(wǎng)上搜一下就能下載到。
下載地址
http://www.json.org/json-zh.html
二、使用Javascript/jQuery將javascript對象轉(zhuǎn)換為json格式數(shù)據(jù).
Javascript自帶的eval()函數(shù)能夠?qū)son數(shù)據(jù)轉(zhuǎn)換成Javascript對象。但是,卻沒有提供將Javascript對象序列化為json格式的函數(shù)。
[javascript] view plaincopy
01.var json = '{"name":"John"}'; ?
02.var obj = eval( '(' + json + ')' ); ? ?
03.alert( obj.name ); ?
jQuery中可以使用$.parseJSON(json)來將json轉(zhuǎn)換為Javascript對象,但卻沒有提供將Javascript對象轉(zhuǎn)換成json的函數(shù)。
[javascript] view plaincopy
01.var json = '{"name":"John"}'; ?
02.var obj = $.parseJSON(json); ? ?
03.alert( obj.name ); ? ?
如果我們要把Javascript對象轉(zhuǎn)化成json,發(fā)送給服務器,該怎么辦呢?
其實很簡單,可以使用jquery.json插件。
插件下載地址:http://code.google.com/p/jquery-json/
當前版本如下:jquery.json-2.4.js (壓縮版:jquery.json-2.4.min.js)
該插件提供了4個函數(shù),用于解析和反解析json,具體如下:
.toJSON:將javascript的object, number, string, 或 array 轉(zhuǎn)換成 JSON數(shù)據(jù)。
.evalJSON:把JSON格式數(shù)據(jù)轉(zhuǎn)換成Javascript對象,速度很快,不過這點速度微不足道(作者自己說的)。
.secureEvalJSON:把JSON 轉(zhuǎn)換成 Javascript對象,但是轉(zhuǎn)換之前會檢查被轉(zhuǎn)換的數(shù)據(jù)是否是 JSON格式的。
.quoteString:在字符串兩端添加引號,并智能轉(zhuǎn)義(跳過)任何引號,反斜杠,或控制字符。
使用例子(注意需要和jQuery核心庫結(jié)合使用):
[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/
轉(zhuǎn)載于:https://blog.51cto.com/heyiyi/1330556
總結(jié)
以上是生活随笔為你收集整理的Python JS Jquery Json 转换关系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vim 7.4
- 下一篇: RedHat/CentOS系统信息查看命