js与json.doc

上传人:11****ws 文档编号:2974324 上传时间:2019-05-13 格式:DOC 页数:29 大小:209.79KB
下载 相关 举报
js与json.doc_第1页
第1页 / 共29页
js与json.doc_第2页
第2页 / 共29页
js与json.doc_第3页
第3页 / 共29页
js与json.doc_第4页
第4页 / 共29页
js与json.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、目前的项目数据交互几乎都用 JQuery,所以处理流程是:前端页面数据 - JS 对象 - jQuery 提交 - python 处理,另外一种就是倒过来。 python 肯定不能直接处理 JS 对象数据,所以要把 JS 对象转换成为 python 能处理的一种数据格式(通常是字典 dict),同样, python 取数据反馈到前端也要把字典数据转换成 JS 能处理的对象,这个中间转换数据格式通常就是 JSON。 一、 JS 对象转换成为 JSON 流程:读取前端页面数据,组装成为 JS 对象,并通过 jQuery 的 $.post()方法传递给 python。 处理:引用一个 json2.j

2、s 文件,调用 JSON.stringify()方法。例如: var data = new Object(); var json_data = JSON.stringify(data); 读取: python 这里就很简单了,用 dict_data = json.loads(json_data)就 OK 了 二、 JSON 转换成为 JS 流程: python 组装一个 dict 数据并转成 JSON 格式传递给前端,或者前端通过jQuery 的 $.getJSON()方法直接读取这个 JSON 格式的数据 处理:用 jQuery 的一个方法 $.parseJSON()将 JSON 格式的数据

3、转成 JS 对象。例如:var json_data = $.getJSON(); var data = $.parseJSON(json_data); 读取: JS 对像的操作就不必多说了 这里, python 要把字典转换成 JSON 格式数据,用 json.dumps()这个方法就行了 PS: json2.js 这个文件在网上搜一下就能下载到。 利用 json 获取字符出现次数的代码 代码如下 : 复制代码 代码如下 : function ObjRegExp() var newStr= “Drive someone up a wall“; newStr = newStr.replace(n

4、ew RegExp(/s/ig),“); var objJson = ; for(var i = 0 ;i “); for(var key in objJson) oDiv.appendChild(document.createTextNode(key +“:“+ objJsonkey); oDiv.appendChild(document.createElement(“); Html 如下 : 复制代码 代码如下 : json 的前台操作和后台操作实现代码 通常情况下 ,json 的在项目中的应用都是在后台把数据传到前台 ,然后前台再获取json 中的数据 . 例子如下 : 复制代码 代码如

5、下 : 通过 JSON 字符串来创建对象 First Name: Last Name: var txt = “employees“: + “firstName“:“Bill“,“lastName“:“Gates“ , + “firstName“:“George“,“lastName“:“Bush“ , + “firstName“:“Thomas“,“lastName“:“Carter“ ; var obj = eval (“(“ + txt + “)“); document.getElementById(“fname“).innerHTML=obj.employees1.firstName d

6、ocument.getElementById(“lname“).innerHTML=obj.employees1.lastName 然后这次的应用是在前台页面中存储数据到 json 中 ,然后传送到后台 . 附应用图一张 : 由图可知 ModifyCellStyle 负责的 font 的 style 部分 ,但是不能控制居中居左居右和上对齐 ,居中对齐等对齐方式 .ModifyString 是修改 cell 中的内容 . 使用格式如下 : 复制代码 代码如下 : var arrObj = ; /动作 Var act = “action“:“ModifyCellStyle“,“bold“:“tr

7、ue“,“italic“:“false“,“cellIndex“:rowx+“:“+rowy; arrObj.push(act); ); var sObj = JSON.stringify(arrObj); 将 json 转化成数组。 以 ModifyCellStyle 方法为例:其中的 bold(加粗), itelic(斜体), underline(下划线)的值为布尔值。即取真或假即可。其他的 sizeString,textColorString, cellColorString 等的取值为 string, cellIndex 的取值为 “x,y”即横坐标和纵坐标。 这个 API 主要用在

8、excel 中,用于对单元格的操作。记录其历史操作。点击保存的时候,然后 json 转换的 String 传向后台,后台接收数据,从后台操作 excel。 当然这个要加载 json2.js 文件。可以自己下载 Json 数据格式 1,基础 这篇文章讲的比较深入,所以不用我画蛇添足了,只是下面这段代码很好的演示了 JSON 如何处理字符串数据,保存下来备查: zt from: https:/ 将 String 对象编码为 JSON 格式时,只需处理好特殊字符即可。另外,必须用 (“) 而非 () 表示字符串: 复制代码 代码如下 : static String string2Json(Strin

9、g s) StringBuilder sb = new StringBuilder(s.length()+20); sb.append(“); for (int i=0; i var user = “Name“:“Andy“, “Sex“ :“man“, “Age“ :“20“, “Phone“:“mobilephone“:“123456789“,“telephone“:“1234-12345678“, “baby“:“big“:“xiaohong“,“middle“:“xiaoming“,“small“:“xiaoli“ /包含数组 alert(user.Name); alert(user.

10、Phone.mobilephone); alert(user.baby0.big); user.baby0.big = “-“;/修改了 JSON 值 alert(user.baby0.big); 参考: http:/www.json.org/json-zh.html 下面来看看 JavaScript 的 eval 函数。 eval 函数会评估给定的一个 JavaScript 代码的字符串,并试图去执行包含在字符串里的表达式或者一系列的合法的 JavaScript 语句。 eval 函数将把最后一个表达式或者语句包含的值或引用作为返回值。 代码 复制代码 代码如下 : var bar = “b

11、ar“; var foobar = eval(“foo“+bar); alert(bar + foobar);/执行语句 foobar = eval(if(bar = “bar“)bar = “foo-bar“;elsebar = “bar-foo“;); alert(foobar);/返回语句中包含的值 JSON 和 对象字面量 (Object Literals)的区别: JSON 的名字部分严格用引号 +名字来表示。 代码 复制代码 代码如下 : /对象字面量 var objectLiteral = name:“Objector.L“, age:“24“, special:“JavaScr

12、ipt“, sayName:function() return this.name; ; /JSON 对象 var jsonFormat = “summary“:“Blogs“, “blogrolls“: “title“:“Explore JavaScript“, “link“:“http:/“ , “title“:“Explore JavaScript“, “link“:“http:/“ ; 由于 Ajax 的兴起, JSON 这种轻量级的数据格式作为客户端与服务器端之间传输的格式逐渐流行起来,进而出现的问题是如何将服务器端构建好的 JSON 数据转换为可用的 JavaScript 对象,利

13、用 eval 函数无疑是一种简单而直接的方法。在转化的时候需要将 JSON 字符串的外面包装一层园括号: var jsonObject = eval(“(“+ jsonFormat +“)“) 加园括号的目的是迫使 eval 函数在评估 JavaScript 代码的时候强制将括号内的表达式 (expression)转换为对象,而不是作为语句 (statement)来执行。举一个例子,例如对象字面量 ,如若不佳加外层的括号,那么 eval会将大括号之别为 JavaScript 代码块的开始结束标记机,那么 将被认为是执行了一句空语句。所以下面两个执行结果是不同的: 复制代码 代码如下 : ale

14、rt(eval(“); /return undefined alert(eval(“()“); /return object Object JSON 格式的名字部分为什么要加引号?因为 eval 函数会将 foo:“bar“解释成合法的 JavaScript 语句,而非表达式。但人们往往是想让 eval 将这段代码解释成一个对象。所以 JSON 格式会强制你去在名字的外侧加上引号,再结合圆括号, eval 就不会错误的将 JSON 解释成代码块。 复制代码 代码如下 : /eval 错误解析语义 alert(eval(foo:“bar“); /return “bar“,incorrect /e

15、val 正确解析 JSON alert(eval(“foo“:“bar“);/return JSON object,correct js+json 用表格实现简单网站左侧导航 调用很简单,只要将数据组织成 json 格式即可:格式如下: 复制代码 代码如下 : window.onload = function() var tf=“if1“; var data=m:“体育网站 “,s:sn:“百度体育“,st:“http:/ var nav=new tableNav(“table1“,data,tf); var bautoClose=false; /打开当前导航条时其它导航条是否关闭 nav.g

16、enerateNav(bautoClose); 整个实例代码如下:供初学者学习! simple struct Ctrl+A 全选 注 :如需引入外部 Js 需刷新才能执行 jQuery 遍历 json 数组的实现代码 复制代码 代码如下 : var d1 =“text“:“王家湾 “,“value“:“9“,“text“:“李家湾 “,“value“:“10“,“text“:“邵家湾 “,“value“:“13“; $(d1).each(function() alert(this.text+“ “+this.value); ); 不用 JQuery 复制代码 代码如下 : var json = “options“:“text“:“王家湾 “,“value“:“9“,“text“:“李家湾“,“value“:“10“,“text“:“邵家湾 “,“value“:“13“ json = eval(json.options) for(var i=0; i js遍历 json 数组 New Document Ctrl+A 全选 注 :如需引入外部 Js 需刷新才能执行 Ajax+Json 级联菜单实现代码 第一个下拉框 : 复制代码 代码如下 :

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。