就个人理解JavaScript 既不是完全面向对象的,也不是完全的面向过程的,参半吧。
单纯的用JavaScript 写一个类估计都能会,伪装个java util类也没啥问题。
这个文章说的切入点是这样的:
JavaScript --> ajax --> some service --> 返回 到JavaScript 。
常见的返回数据的方式有:
1)返回数据由ajax框架来伪装成 JavaScript 类 ;
2)返回lang类型的 数据,直接编程JavaScript的弱类型数据来使用。
没有反对上面两种方式的意思,现在给出我自己的方式:
例:现在要返回这样一个结构的数据:
final class VO {
String strs[][] = {null,{"sdf",null},{"sdf","ggds"},{"wer","saw"}};
String name = "nameStr";
int age = 12;
String sysLoginID;
String password = "sdf";
}
要返回这个VO 的instance 的数据给 JavaScript ,我的做法比较折中,既不转换成伪类,也不返回简单的lang类型 ,
返回的一个字符串,格式如下:
{strs:[null,['sdf',null],['sdf','ggds'],['wer','saw']],name:'name',age:'12',sysLoginID:'',password:'sdf'}
(怎么转?,有写好的code ,Helper.toJSONString(Object obj) ,详见:Helper(http://chrnc.iteye.com/admin/blogs/269322)
现在看看 JavaScript 这边怎么来处理 :
testValue是传给 TestService 的 参数, TestService 是java 用伪装的 JavaScript类 。
现在将TestService 返回的 数据 ({strs:[null,['sdf',null],['sdf','ggds'],['wer','saw']],name:'name',age:'12',sysLoginID:'',password:'sdf'})
赋值给 curData
代码如下:
var curData = "";
DWREngine.setAsync(false);
var callbackProxy = function(serverRetValue) {new function(){curData=serverRetValue;}};
var callMeta = { callback:callbackProxy };
TestService.getTestJSONStr(testValue,callMeta);
DWREngine.setAsync(true);
var JSONObj = eval("("+curData+")"); //弄了变天就为了这句
JSONObj是 转换出来的 JavaScript 原声类型
JSONObj.name 你会得到 "nameStr"
JSONObj.sysLoginID 你会得到 null
JSONObj.strs[1][0] 你会得到 "sdf"
我见过一些兄弟,挺猛,就能把上面的VO连接成字符串后到前台的JavaScript中来拆分,取数据,但是,如果没了注释的话,以后谁能维护?看懂的成问题。
谨以此文送给我那还在拆分字符串的朋友们。
当然,在开发中我们不会去调用DWREngine去设置同步和异步的,转换JSON等动作也会放到 callback function 中去做,上面的写法只是理想状态的写法,只为转换JSON的逻辑看着更清晰连贯,现实中,如果后台动作很耗时的话,这么做了你会发现,你的在页面上,键盘和鼠标都不响应了,浏览器处于冻结状态.....我年轻时在开发时候这么写过,还教别人也这么用DWREngine,真是无知者无谓啊,不知现在他们和公司发现这些问题没...
完。
分享到:
相关推荐
中国行政区域查询省市区JSON 带code
[Packt Publishing] JavaScript & JSON 核心技术 (英文版) [Packt Publishing] JavaScript and JSON Essentials (E-Book) ☆ 图书概要:☆ Successfully build advanced JSON-fueled web applications with this ...
网上找了好多全国省市区的JSON文件, 要不就是没有code 要不就是省市区分多个文件 还有一些就是只有省和市, 个人集中了这几种情况整合了一下
Json+javascript歌曲清单源码 项目介绍: 1.服务器接受请求 后台一般处理程序,将音乐文件夹里, 音乐信息转换问Json字符串发送到客户端; 2.客户端将字符串转换为Json对象,将其绑定到页面上; 3.借用雅虎的播放器插件,将...
JSON (JavaScript Object Notation) is a lightweight text-based code to create objects to transfer data over the Internet. It is a data exchange format that is human-readable (like XML, but without the...
功能强大的 json editor 源代码,使用 javascript 编写
JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。本文将快速讲解 JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。
JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。 JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包。
全国市区code,名称,json数据下载。
json4lua, JSON ( Javascript对象表示法 http json4lua用于Lua的JSON和 JSONRPC安装luarocks install --server=http://rocks.moonscript.org/manifests/amrhassan --local js
json的javascript的资源文件
支持将自身转换成json字符串输出
包含对对JSON字符串进行解析方法,在使用前加载,就可使用相应方法。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - ...这些特性使JSON成为理想的数据交换语言。
中国省市区json文件,包含id,code,全拼音,拼音首字母。(注:因某些名称存在多音字,已经改正过来了)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集...
json3.js 【JS / JavaScript 中解析JSON的js包,JSON官方的JSON解析包】。JavaScript中解析JSON的js包,页面中引入json3.js,即可使用。 使用方法:JSON.parse(str), JSON.stringify(obj) 更多详情请参考博文: ...
city_code.json 城市三级联动 josn文件,含 中山东莞
JavaScript JSON Cookbook 英文mobi 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
一个用于将JSON数据转换为Table的JavaScript库