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閱讀 134,915評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,251評論 25 708
  • 1 場景問題# 1.1 繼續導出數據的應用框架## 在討論工廠方法模式的時候,提到了一個導出數據的應用框架。 對于...
    七寸知架構閱讀 5,856評論 1 64
  • 今天,突然跟老公說:我要重新做人。老公一臉茫然的看著我,一如看到標題后點進來的朋友們一般:這是犯了多大的錯誤,要上...
    一米2017閱讀 628評論 0 1
  • 參考書目:《落差:如何化解我們內心的失望》 作者 [法] 米歇爾·勒朱瓦耶。 貓叔說,世界太大,我們太小。不要把...
    安心悅舍閱讀 234評論 0 0