diff options
Diffstat (limited to 'dgbuilder/public/util/js/jsonTool.js')
-rw-r--r-- | dgbuilder/public/util/js/jsonTool.js | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/dgbuilder/public/util/js/jsonTool.js b/dgbuilder/public/util/js/jsonTool.js new file mode 100644 index 00000000..f4d0de36 --- /dev/null +++ b/dgbuilder/public/util/js/jsonTool.js @@ -0,0 +1,67 @@ +var obj={}; +function dotToJson(str,value,obj){ + //var objArr = path.split("."), part; + var objArr = str.split("."); + var prevStr; + var currObj; + var prevObj; + console.log(str); + for(var i=0;i<objArr.length -1;i++){ + var subStr= objArr[i] ; + //console.log("subStr:" + subStr); + if(i==0 && obj[subStr] == undefined ){ + obj[subStr] = {}; + currObj= obj[subStr]; + }else if(i==0 && obj[subStr] != undefined ){ + currObj=obj[subStr]; + //console.log("in gkjgjkg"); + }else{ + if(i == 1){ + prevObj=obj[prevStr]; + if(prevObj[subStr] == undefined){ + prevObj[subStr] = {}; + currObj = prevObj[subStr]; + }else{ + currObj = prevObj[subStr]; + } + }else{ + if(prevObj[subStr] == undefined){ + prevObj[subStr] = {}; + currObj = prevObj[subStr]; + }else{ + currObj = prevObj[subStr]; + } + } + //console.dir(currObj); + } + prevStr=subStr; + if(i <objArr.length-2){ + prevObj=currObj; + } + } + var lastStr = objArr[objArr.length-1]; + currObj[lastStr] = value; + //prevObj[lastStr] = value; + //console.dir(currObj); + return obj; +} +n=dotToJson('abcfdfghdghdghdghdhdhd.efhfjhfjhfjhfjhfjhfjhfbg.hfjhfjhfjhfjhfjhfjh.l',"1234",obj); +//console.dir(n); +JSON.stringify(n,undefined,2); +m=dotToJson('abc.ebg.h.n',"5678",n); +console.dir(m); +function printObj(obj){ +for( j in obj){ + console.log(j + ":" + obj[j]); + if(typeof obj[j] == "object" ){ + printObj(obj[j]); + } + +} +} +printObj(m); +a=JSON.parse(JSON.stringify(m,null,2)); +console.dir(a); + + +//console.log (stringToObj('abc.ebg.h',"",{})); |