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." }
    原文作者:MakingChoice
    原文地址: https://www.jianshu.com/p/38a115d38e18
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞