【问题标题】:Convert a multidimensional array to JSON with node.js使用 node.js 将多维数组转换为 JSON
【发布时间】:2013-11-27 15:45:51
【问题描述】:

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

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

在 Node.js 中执行此操作的最佳实践是什么? 提前致谢!

【问题讨论】:

  • 什么是创建这样的数组?
  • @Explosion Pills 我正在迭代 BIG 数组并将每个子数组发送到 Mongodb,这只是一个以“0”为索引的子数组。

标签: javascript arrays json node.js


【解决方案1】:

你完全可以使用JSON.stringify

string_for_mongo = JSON.stringify(your_array)

但您也可以使用任何 these 驱动程序用于 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

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

【讨论】:

  • 这是console.log(string_for_mongo); ["0",[["id",1],["country",0],["people",3],["name","WELLINGTON ALFRED"],["location","hill"],["filename","243245.PDF"]]]的结果
  • ...是的,这是适用于 JSONLint(JSON 验证器)的有效 JSON。
【解决方案2】:

没有相同的内置方法。

您可以使用以下功能:

//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;
}

参考:Click Here

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-23
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 2023-03-12
    • 2013-04-17
    相关资源
    最近更新 更多