作家
登录

用JavaScript对JSON进行模式匹配(Part 1-设计)

作者: 来源:www.28hudong.com 2013-03-30 01:26:55 阅读 我要评论

至于筛选条件的描述,模式匹配是一种很常见也很好用的方式。在 JavaScript 里面,用 JSON 来描述模式又是相当方便的事情,所以我们来做一个 JSON 模式匹配工具吧。 用例设计 作为一个 dispatcher ,我们只需要两个方法: notify 和 capture 。一个最简单的用例是这样的: 复制代码 代码如下: Dispatcher.capture({ "status": 200, "command": "message" }, function(json) { /* display message */ }); Dispatcher.notify({ “status": 200, "command": "message", "content": { "from": "user1", "to": "user2", "text": "hello" } }); 当然,只有局部的全等匹配是不够的,我们还需要一些其他运算符。 复制代码 代码如下: Dispatcher.capture({ "value1$eq": "hello", /* equal */ "value2$ne": true, /* not equal */ "value3$lt": 0, /* less than */ "value4$lte: 1, /* less than or equal */ "value5$gt": 2, /* greater than */ "value6$gte": 3, /* greater than or equal */ "value7$in": [1, 3, 5, 7, 9], /* in */ "value8$nin": [2, 4, 6, 8, 10], /* not in */ "value9$all": [1, 2, 3, 4, 5], /* all */ "value10$ex": true, /* exists */ "value11$re": /^A.*/, /* regular expression */ "value12$ld": function(json) { return true; } /* lambda */ }, function(json) {}); Dispatcher.notify({ "value1": "hello", "value2": false, "value3": -1, "value4": 1, "value5": 3, "value6": 3, "value7": 5, "value8": 5, "value9": [1, 3, 5, 2, 4], "value10": "hello", "value11": "A13579", "value12": "anything" }) 随手写下来一堆运算符,看起来实现会很复杂?其实不会有多复杂。在下一篇文章里面,我们会讨论如何设计一个运算符接口,然后逐一实现这些运算符。

  推荐阅读

  基于jQuery的树控件实现代码(asp.net+json)

语言: asp.net (其实都一样 只要服务器返回json就可以了); 先介绍下: 这个是一个美女大姐问我要的 写好了DEMO准备发给他 总不能独享 就贴出来了 第二次在cnblogs写博.. - - 那个代码有冗余 各位大虾可以自行修改..>>>详细阅读


本文标题:用JavaScript对JSON进行模式匹配(Part 1-设计)

地址:http://www.17bianji.com/kaifa2/JS/26026.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)