使用node.js将多维数组转换为JSON

Convert a multidimensional array to JSON with node.js

本文关键字:数组 转换 JSON node js 使用      更新时间:2023-11-20

在组合了几个简单数组后,我得到了一个BIG多维数组,现在我需要在将其发送到Mongodb之前将其转换为JSON字符串。以下是阵列结构:

[ '0',
  [ [ 'id', 1 ],
    [ 'country', 0 ],
    [ 'people', 3 ],
    [ 'name', 'WELLINGTON ALFRED' ],
    [ 'location', 'hill' ],
    [ 'filename', 243245.PDF]]]

在Node.js中最好的做法是什么?提前感谢!

您完全可以使用JSON.stringify

string_for_mongo = JSON.stringify(your_array)

但是您也可以将这些驱动程序中的任何一个用于mongodb

如果你想将这些数组转换为对象,你可以使用类似的东西

pairs = {}
for ( pair in your_array[1] ) { pairs[your_array[1][pair][0]] = your_array[1][pair][1] }
objekt = {}
objekt[your_array[0]] = pairs

我认为没有比不使用这样的数组更好的解决方案了。尝试从一开始就在对象中形成数据。

没有内置的方法。

您可以使用以下功能:

//array
var arr = [
    ["Status", "Name", "Marks", "Position"], 
    ["active", "Akash", 10.0, "Web Developer"],
    ["active", "Vikash", 10.0, "Front-end-dev"],
    ["deactive", "Manish", 10.0, "designer"],
    ["active", "Kapil", 10.0, "JavaScript developer"],
    ["active", "Manoj", 10.0, "Angular developer"],
];
//javascript create JSON object from two dimensional Array
function arrayToJSONObject (arr){
    //header
    var keys = arr[0];
    //vacate keys from main array
    var newArr = arr.slice(1, arr.length);
    var formatted = [],
    data = newArr,
    cols = keys,
    l = cols.length;
    for (var i=0; i<data.length; i++) {
            var d = data[i],
                    o = {};
            for (var j=0; j<l; j++)
                    o[cols[j]] = d[j];
            formatted.push(o);
    }
    return formatted;
}

参考:点击此处

注意:这可能不会给出问题中给出的输入所需的输出。我已经提供了将在arr中工作的输入类型。