封装JSON数据转自定义HTML方法parseHTML
2013-09-18 14:31
519 查看
开发过程中经常使用字符串拼接,这样做工作效率低,可维护性和易读性也比较差,
且对于后台程序员对html不熟悉,经常出错。
如下面例子json转字符串:
传统拼接:
要是可以这样:
字符串中{key}对应json中key的值,直接转换想要的字符串,显得简单的了!
是json中的值返回的结果有多种情况我们可以这么来:
parseHTML函数的源码:
且对于后台程序员对html不熟悉,经常出错。
如下面例子json转字符串:
var json = [{ href:'http://www.cnblogs.com/dreamback/', title: 'dreamback\'s blog', text: 'dreamback' }, { href:'http://www.cnblogs.com/dreamback/', title: '孟回头的博客', text: '孟回头' }];
传统拼接:
var html = ''; for(var i = 0 , len = json.length ; i < len ; i++){ html += '<a href="'+href+'" title="' + title +'">' + text + '</a>'; }
要是可以这样:
var template = '<a href="{href}" title="{title}">{text}</a>'; var html = parseHTML(template, json);
字符串中{key}对应json中key的值,直接转换想要的字符串,显得简单的了!
是json中的值返回的结果有多种情况我们可以这么来:
var data = [{ name:'蜡笔小新', sex:0 },{ name:'小丸子', sex:1 },{ name:'凹凸曼', sex:-1 }]; var template = '姓名:{name},性别:{sex};<br>'; var html = parseHTML(template, json,function(key, val){ //如果是{sex}对应的数值返回相应的文字 if(key == 'sex'){ return ['保密','男','女'][val+1]; } return val; });
parseHTML函数的源码:
/** * JSON数据转自定义HTML. * @param {String} template 模版参数模版的变量名要与JSON的key值对应, * 且模版的变量名要用"{}"包住。 * @param {Object} json JSON数据,只接收类似[{},{}...]格式的JOSN。 * @param {String} result 开头默认的字符串,也被内部递归利用。 * @param {Function} fn 回调函数前面两个参数分别对应json的key和value * @return {String} 返回转义的HTML。 */ function parseHTML(template, json, fn, result){ result = result || ''; if(Object.prototype.toString.call(json) === '[object Array]'){ var first = json.shift(); result += template.replace(/\{([^{}]+)\}/g, function(match, key) { var val = first[key]; if(fn){ return fn(key, val); } return val !== undefined ? val : ''; }); return json.length !== 0 ? parseHTML(template, json, fn, result) : //递归 result; }else{ alert('只接收数组形式的JSON数据!'); } };
相关文章推荐
- 封装JSON数据转自定义HTML方法parseHTML
- Ajax处理XML、HTML、JSON三种数据格式的方法
- 客户端封装数据为json格式的数据提交到服务端的方法
- Java学习-029-JSON 之三 -- 模仿 cssSelector 封装读取 JSON 数据方法
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- html中通过JS获取JSON数据并加载的方法
- jQuery封装方法ajax调用获得返回json数据方法
- jQuery中ajax请求后台返回json数据并渲染HTML的方法
- APP接口开发之PHP封装JSON数据 ,并读取JSON数据的方法
- zTree的联想[将数据表封装成自定义TreeNode,再将TreeNode生成json字串
- 封装jquery 请求数据,后台将数据转为json 传到前台方法。
- 封装通信接口数据的方法-json
- form表单数据封装成json格式并提交给服务器的实现方法
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- Laravel自定义 封装便捷返回Json数据格式引用
- 【COCOS2D-X(1.X 2.X) Json(cpp版)及新加字体库篇】在Cocos2dx引擎中封装、解析Json(cpp版)数据以及添加自定义字体库
- APP接口(2)json封装数据方法
- httpclient模拟post请求json封装表单数据的实现方法
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)
- Ajax核心XMLHttpRequest对象、(发送请求、接收)方法和属性介绍、AJAX开发框架、数据格式提要(XML、JSON、HTML)