2016-04-13 4 views
-1

Надеюсь, что я спрашиваю об этом правильно.Как преобразовать массив JSON в массив значений ключей?

У меня есть массив notes, в котором каждый элемент является линией JSON. Так, например:

//notes[0] contains this line 
{ 
"id":"23", 
"valuee":"129", 
"datee":"2016-04-05T15:20:08.218+0100" 
} 

//notes[1] contains this line: 
{ 
"id":"24", 
"valuee":"131", 
"datee":"2016-04-05T15:20:10.272+0100" 
} 

То, что я хочу, чтобы преобразовать предыдущий массив что-то вроде этого, так что я могу использовать его для построения linewithfocus диаграммы с nvd3:

//notes[0] contains this line 
{ 
key:"23", 
values:[{x:"129",y:"2016-04-05T15:20:08.218+0100"}] 

//notes[1] contains this line: 
{ 
key:"24", 
values:[{x:"131",y:"2016-04-05T15:20:10.272+0100"}] 

Как я могу это сделать ? Огромное спасибо.

ответ

2

Вы можете сделать это следующим способом

notes.map((note) => { 
    return { 
     key: note.id, 
     values: [{ 
      x: note.valuee, 
      y: note.datee 
     }] 
    } 
}) 
+0

Большое спасибо! Решение было проще, чем я думал. –

1

Вы можете использовать Array.map

var data = [{ 
 
    "id": "23", 
 
    "valuee": "129", 
 
    "datee": "2016-04-05T15:20:08.218+0100" 
 
}, { 
 
    "id": "24", 
 
    "valuee": "131", 
 
    "datee": "2016-04-05T15:20:10.272+0100" 
 
}] 
 

 
var result = data.map(function(o) { 
 
    return { 
 
    key: o.id, 
 
    values: { 
 
     x: o.valuee, 
 
     y: o.datee 
 
    } 
 
    } 
 
}); 
 

 
document.write("<pre>" + JSON.stringify(result,0,4) + "</pre>");

Смежные вопросы