Я пытаюсь переназначить следующую структуру JSON, которая отформатирована по категориям, а затем для каждой категории может содержать несколько местоположений. В местах содержат долготу/Lat и код города: Объект Remap JSON для другой структуры JSON
{
"cat1":[
{"location":{
"latitude":51.38,
"longitude":4.34,
"code":"0873"}
},
{"location":{
"latitude":52.65,
"longitude":6.74,
"code":"0109"}
},
{"location":{
"latitude":51.48,
"longitude":4.33,
"code":"0748"}
},
{"location":{
"latitude":51.48,
"longitude":4.33,
"code":"0109"}
}
],
"cat2":[
{"location":{
"latitude":52.33,
"longitude":4.32,
"code":"0873"}
},
{"location":{
"latitude":52.65,
"longitude":6.74,
"code":"0109"}
},
{"location":{
"latitude":51.48,
"longitude":4.33,
"code":"0728"}
}
],
"cat3":[
{"location":{
"latitude":52.33,
"longitude":4.32,
"code":"0873"}
},
{"location":{
"latitude":52.65,
"longitude":6.74,
"code":"0109"}
},
{"location":{
"latitude":51.48,
"longitude":4.33,
"code":"0758"}
}
]
}
в следующей структуру, которая, в первую очередь, сфокусированный на AREACODE, то есть категории с фактическими местами в них.
{
"code":[
{"0873":[
{"cat1":[
{"location":{"latitude":51.38,"longitude":4.34}}
]},
{"cat2":[
{"location":{"latitude":52.33,"longitude":4.32}}
]},
{"cat3":[
{"location":{"latitude":52.33,"longitude":4.32}}
]}
]},
{"0109":[
{"cat1":[
{"location":{"latitude":52.65,"longitude":6.74}},
{"location":{"latitude":51.48,"longitude":4.33}}
]},
{"cat2":[
{"location":{"latitude":52.65,"longitude":6.74}}
]},
{"cat3":[
{"location":{"latitude":52.65,"longitude":6.74}}
]}
]},
{"0748":[
{"cat1":[
{"location":{"latitude":51.48,"longitude":4.33}}
]}
]},
{"0728":[
{"cat2":[
{"location":{"latitude":51.48,"longitude":4.33}}
]}
]},
{"0758":[
{"cat3":[
{"location":{"latitude":51.48,"longitude":4.33}}
]}
]}
]
}
Я пытаюсь сделать это в Javascript/Узла и смотрел на пути, чтобы сделать это более элегантно, чем обход всех объектов вручную и реструктурировать их. Изучал reorient и obstruction, но не может найти способ сделать это.
Любая помощь приветствуется!
Я знаю, что вышеприведенные части представляют собой строки JSON, которые считываются из файла, а затем анализируются на объект.
код я должен сделать это в настоящее время (его не закончил, потому что я не знаю, что было бы лучшим способом сделать remapJson()
:
var fs = require('fs'),
jsonfile = require('jsonfile');
function remapJson(oldData) {
var newData = {};
// Do the convertion (loop all keys and values?)
return newData
}
obj = jsonfile.readFileSync('oldstructure.json');
jsonfile.writeFileSync('newstructure.json', remapJson(obj));
Вы можете добавить свой код. пожалуйста, посмотрите здесь: [mcve] –
Я мог бы предложить использовать [javascript linq] (https://linqjs.codeplex.com/) –
Пожалуйста, взгляните на это: http://benalman.com/news/2010/ 03/theres-no-such-thing-as-a-json/ –