Javascript или Ruby. Переформатировать объект JSON - PullRequest
0 голосов
/ 20 апреля 2011

Мне нужно включить этот объект JSON:

[
    [
        "email@email.com"
    ],
    [
        "email2@email.com"
    ],
    [
        "email3@email.com"
    ],
    [
        "email4@email.com"
    ]
]

В это:

{
    "data": [
        {
            "email": "email@email.com"
        },
        {
            "email": "email2@email.com"
        },
        {
            "email": "email3@email.com"
        },
        {
            "email": "email4@email.com"
        }
] }

Как это сделать?

Ответы [ 3 ]

1 голос
/ 20 апреля 2011

Javascript:

var original = [
[
    "email@email.com"
],
[
    "email2@email.com"
],
[
    "email3@email.com"
],
[
    "email4@email.com"
]
];

var output = {};
output.data = new Array();
for(var i=0;i<original.length;i++){
    var o = new Object();
    o.email = original[i][0];
    output.data.push(o);
}
1 голос
/ 20 апреля 2011

Ну, на самом деле это просто массив массивов, но это не главное.Просто переберите массив массивов и вставьте соответствующие данные в новый массив вашего объекта:

var my_new_object = {};
my_new_object['data'] = [];

for (var i = 0; i < your_array.length; i++) {
  my_new_object.data.push({"email": your_array[i][0]});
}

Рабочая демонстрация .

0 голосов
/ 20 апреля 2011

Вы можете проверить это здесь: http://jsfiddle.net/v3fnk/

var data=[["email@email.com"],["email2@email.com"],["email3@email.com"],["email4@email.com"]];

for (var i in data) {
    for (var x in data[i]) {
        $("#info").append(data[i][x] + '<br/>');
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...