Ich habe eine riesige JSON-Datei. Es ist nicht in der richtigen Struktur und ich habe keine Kontrolle über die Struktur. Es sind Daten, die von einer Gruppe von Routern stammen, die auf dem Zeitstempel basieren. Ich versuche, eine Objektstruktur zu erstellen, die alle Informationen für einen bestimmten Router zu einem Router-Objekt mit Zeitstempel usw. als Arrays kombiniert. @quodlibetor war eine große Hilfe, um mich dazu zu bringen. Ich möchte auch automatisch die Eigenschaften des Objekts aus dem Namen des Namens val Paare im JSON nennen.JSON in ein Objekt mit einer anderen Struktur automatisch manipulieren
Mein Ziel ist es, die Eigenschaften aus den Namen in der JSON-Datei automatisch zu benennen und sie in ein Objekt zu strukturieren, das so aussieht (Ich bin offen für Vorschläge zur Struktur, die das am besten organisiert schien) .
Das ist die Struktur Ich möchte:
{
"Router": [
{
"routerName": "RouterID1",
"TimeStamp": [
"2012/01/01 06:00:00",
"2013/01/01 06:00:00",
"2014/01/01 06:00:00"
],
"OutputBITS": [
"23235",
"29903",
"22103"
],
"InputBITS": [
"23235",
"29903",
"22103"
]
}
]
}
Obwohl versucht, diese Struktur zu schaffen, ich bin nah dran, aber kein Deal:
{
"RouterID1": {
"timeStamp": [
{
"timeStamp": "2012/01/01 06:00:00"
},
{
"timeStamp": "2013/01/01 06:00:00"
},
{
"timeStamp": "2014/01/01 06:00:00"
}
],
"OutputBITS": [
{
"OutputBITS": "23235"
},
{
"OutputBITS": "23235"
},
{
"OutputBITS": "23235"
}
],
"InputBITS": [
{
"InputBITS": "29903"
},
{
"InputBITS": "29903"
},
{
"InputBITS": "29903"
}
]
}
}
ORIGINAL JSON:
json = [
{
"Router": "RouterID1",
"TimeStamp": "2012/01/01 06:00:00",
"OutputBITS": "23235",
"InputBITS": "29903"
},
{
"Router": "RouterID1",
"TimeStamp": "2013/01/01 06:00:00",
"OutputBITS": "23235",
"InputBITS": "29903"
},
{
"Router": "RouterID1",
"TimeStamp": "2014/01/01 06:00:00",
"OutputBITS": "23235",
"InputBITS": "29903"
},
{
"Router": "RouterID3",
"TimeStamp": "2012/01/01 06:05:00",
"OutputBITS": "21235",
"InputBITS": "22103"
},
{
"Router": "RouterID3",
"TimeStamp": "2012/01/01 06:05:00",
"OutputBITS": "21235",
"InputBITS": "22103"
},
{
"Router": "RouterID4",
"TimeStamp": "2012/01/01 06:05:00",
"OutputBITS": "21235",
"InputBITS": "22103"
},
{
"Router": "RouterID4",
"TimeStamp": "2012/01/01 06:05:00",
"OutputBITS": "21235",
"InputBITS": "22103"
}
];
CODE:
// Create routers object
var routers = {};
for (var i=0;i<json.length;i++){
var router_name = json[i].Router;
router_name = (router_name.replace(/-/g, "")); //take hyphen out or router name
if (!routers[router_name]){
// add properties to the router object thanks to @@quodlibetor
// instead of using timeStamp is something like json[i] or json.[name] or some
// way to reference each json property and not have to type it in?
routers[router_name] = { timeStamp : [], OutputBITS : [], InputBITS : [] };
}
routers[router_name].timeStamp.push({
timeStamp : json[i].TimeStamp
});
routers[router_name].OutputBITS.push({
OutputBITS : json[i].OutputBITS
});
routers[router_name].InputBITS.push({
InputBITS : json[i].InputBITS
});
};
console.log(routers);
});
</script>
Was ist die JSON Sie am Anfang haben? –
Ich habe meine Antwort bearbeitet –
[{ist, was am Anfang ist. Es ist alles da oben. Ich überprüfe deine Antwort unten. – rd42