Convert string with dot notation to JSON

前端 未结 3 1765
隐瞒了意图╮
隐瞒了意图╮ 2020-12-04 23:03

Given a string as dot notation, how would I create an object from that string (checking for already existing properties): eg

var obj = {};
stringToObj(\'a.b\         


        
3条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-04 23:30

    For those of you who are looking for solution without the _x in the object try this code. A slight modification of the above code (which is brilliant)

    stringToObj = function(path,value,obj) {
      var parts = path.split("."), part;
      var last = parts.pop();
      while(part = parts.shift()) {
       if( typeof obj[part] != "object") obj[part] = {};
       obj = obj[part]; // update "pointer"
      }
     obj[last] = value;
    }
    

    As bonus the above code will work if you want to update parts of an existing object :)

     var obj = {a:{b:3}};
     stringToObj("a.b",10,obj);
     console.log(obj); //result : {a:{b:10}}
    

提交回复
热议问题