0

您好,我有以下 Javascript 代码,我尝试将从 Neo4J 数据库获得的对象转换为一个不错的数组或 JSON(我将能够处理两者之一)以进一步与 Gephi / Sigma 一起使用。

但它不起作用...

知道为什么吗?

var myObj = [
    [ 'b7145841-962f-11e3-8b8e-abca0f9fdedd',
        'painquotidien',
        'b7145842-962f-11e3-8b8e-abca0f9fdedd',
        'cafeamour',
        'b7145843-962f-11e3-8b8e-abca0f9fdedd' ],
    [ 'cce97c91-962f-11e3-8b8e-abca0f9fdedd',
        'hotelamour',
        'b7145842-962f-11e3-8b8e-abca0f9fdedd',
        'cafeamour',
        '19fe2713-9630-11e3-8b8e-abca0f9fdedd' ]
];

var nodes = {
    id: '',
    label: ''
};


var edges = {
    source: '',
    target: '',
    id: ''
};

for (var i = 0; i < myObj.length; i++) {
    nodes['id'].push(myObj[i][0]);
    nodes['label'].push(myObj[i][1]);
    nodes['id'].push(myObj[i][2]);
    nodes['label'].push(myObj[i][3]);
    edges['source'].push(myObj[i][0]);
    edges['target'].push(myObj[i][2]);
    edges['id'].push(myObj[i][4]);
}

已经在 StackOverflow 和其他地方搜索过,但没有提供的解决方案对我有用,可能是因为它是我需要的多维数组,并且结构与对象略有不同(参见上面的代码)。

感谢您的帮助!

4

1 回答 1

2

此代码有效:

   var nodes_object = myObj;
   var g = {
        nodes: [],
        edges: []
    };

    for (var i = 0; i < nodes_object.length; i++) {

        g.nodes.push({
            id: nodes_object[i][0],
            label: nodes_object[i][1]
        });

        g.nodes.push({
            id: nodes_object[i][2],
            label: nodes_object[i][3]
        });

        g.edges.push({
            source: nodes_object[i][0],
            target: nodes_object[i][2],
            id: nodes_object[i][4],
            edge_context: nodes_object[i][5]
        });

    };
于 2014-02-23T12:49:15.387 回答