一尘不染

从嵌套键串构建嵌套JSON

node.js

我有正在使用nodeJS读取的csv文件。我在阅读之前将每个文件转换为文本。

文件中的每一行都有以’=’分隔的数据。

每行看起来像

data.location.degree.text=sometexthere

“ =“之前的第一部分代表我应用程序中json对象的索引。我的目的是解析此数据并为其构建json表示,以便上面的行成为

data:{
  location:{
    degree:{
      text: 'sometexthere'
    }
  }
}

使用javascript / node js; 如何将应该表示嵌套JSON键序列的字符串转换为上述json对象?


阅读 212

收藏
2020-07-07

共1个答案

一尘不染

您可以分割路径并检查以下元素是否存在。如果没有,则将对象分配给新属性。

然后返回该属性的值。

最后分配值。

function setValue(object, path, value) {

    path = path.replace(/[\[]/gm, '.').replace(/[\]]/gm, ''); //to accept [index]

    var keys = path.split('.'),

        last = keys.pop();



    keys.reduce(function (o, k) { return o[k] = o[k] || {}; }, object)[last] = value;

}



var data = {};



setValue(data, 'location.degree.text', 'sometexthere');

console.log(data);
2020-07-07