JSON(JavaScriptObjectNotation)是一种轻量级的数据交流格局。易于人阅览和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON采用彻底独立于言语的文本格局,可是也运用了类似于C言语宗族的习惯(包含C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为抱负的数据交流言语。
JSON建构于两种结构:
“名称/值”对的调集(Acollectionofname/valuepairs)。不同的言语中,它被理解为目标(object),纪录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyedlist),或许相关数组(associativearray)。
值的有序列表(Anorderedlistofvalues)。在大部分言语中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机言语都以某种方式支撑它们。这使得一种数据格局在同样基于这些结构的编程言语之间交流成为可能。
JSON具有以下这些方式:
目标是一个无序的“‘名称/值’对”调集。一个目标以{左括号开端,}右括号完毕。每个“名称”后跟一个:冒号;“‘名称/值’对”之间运用,逗号分隔。
数组是值(value)的有序调集。一个数组以[左中括号开端,]右中括号完毕。值之间运用,逗号分隔。
值(value)可所以双引号括起来的字符串(string)、数值(number)、true、false、null、目标(object)或许数组(array)。这些结构能够嵌套。
字符串(string)是由双引号围住的恣意数量Unicode字符的调集,运用反斜线转义。一个字符(character)即一个独自的字符串(characterstring)。
字符串(string)与C或许Java的字符串十分相似。
数值(number)也与C或许Java的数值十分相似。除去未曾运用的八进制与十六进制格局。除去一些编码细节。
空白能够加入到任何符号之间。
json格式转换详解
目前的项目数据交互简直都用JQuery,所以处理流程是:前端页面数据-》JS目标-》jQuery提交-》python处理,别的一种就是倒过来。python必定不能直接处理JS目标数据,所以要把JS目标转换成为python能处理的一种数据格局(通常是字典dict),同样,python取数据反馈到前端也要把字典数据转换成JS能处理的目标,这个中间转换数据格局通常就是JSON。
一、JS目标转换成为JSON
流程:读取前端页面数据,拼装成为JS目标,并通过jQuery的$.post()办法传递给python。
处理:引证一个json2.js文件,调用JSON.stringify()办法。例如:vardata=newObject();varjson_data=JSON.stringify(data);
读取:python这儿就很简单了,用dict_data=json.loads(json_data)就OK了
二、JSON转换成为JS
流程:python拼装一个dict数据并转成JSON格局传递给前端,或许前端通过jQuery的$.getJSON()办法直接读取这个JSON格局的数据
处理:用jQuery的一个办法$.parseJSON()将JSON格局的数据转成JS目标。例如:varjson_data=$.getJSON();vardata=$.parseJSON(json_data);
读取:JS对像的操作就不用多说了
这儿,python要把字典转换成JSON格局数据,用json.dumps()这个办法就行了