JSON factoury生成器

下面分享一个JSON生成器,主要可以生成如下所示的json结构:

{
    type:"message_1",
    text1:"one two three",
    text2:"one two three",
    .....
}

其中type是指的是JSON的名字。

下面是生成器代码:

var sentinel=function(type,value,props){
    var copy=Object.create(null);//生成一个原型为null的对象
    if(props!=null){
        for(var prop in props){
            copy[prop]=props[prop]
        }
        copy["$type"]=type;
        copy.value=value;
        return copy;
    }
    else{
        return {$type:type,value:value}
    }    
}
module.exports={
    ref:function ref(path,props){
        return sentinel("ref", path, props);
    },
    atom:function atom(){
        return sentinel("atom",path,props)
    },
    undefined:function(){
        return sentinel("atom")
    },
    error:function(errorValue,props){
        return sentinel("error",errorValue,props)
    },
    .....//剩下可以自己填充了
}

这个方法支持AMD,可以通过require来获取。

var jsonFactory=require(....);
var atom = jsonFactory.atom("a string wrapped in an atom"); 
// creates { $type: "atom", value: "a string wrapped in an atom" }
var ref = jsonFactory.ref("todos[0].name"); 
// creates { $type: "ref", value: ["todos", 0, "name"] }
var error = jsonFactory.error("something bad happened."); 
// creates { $type: "error", value: "something bad happened." }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,248评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,437评论 25 709
  • 1 场景问题# 1.1 继续导出数据的应用框架## 在讨论工厂方法模式的时候,提到了一个导出数据的应用框架。 对于...
    七寸知架构阅读 5,932评论 1 64
  • 今天,突然跟老公说:我要重新做人。老公一脸茫然的看着我,一如看到标题后点进来的朋友们一般:这是犯了多大的错误,要上...
    一米2017阅读 633评论 0 1
  • 参考书目:《落差:如何化解我们内心的失望》 作者 [法] 米歇尔·勒朱瓦耶。 猫叔说,世界太大,我们太小。不要把...
    安心悦舍阅读 235评论 0 0