我正在尝试重新映射以下按类别格式化的JSON结构,然后每个类别可以包含多个位置。位置包含经度/纬度和区域代码:
在以下结构中,主要集中在区号上,然后将类别与其中实际位置联系起来。
我尝试使用Javascript/Node完成这个任务,希望找到一种比手动遍历所有对象并重构它们更优雅的方法。我研究了reorient和obstruction,但无法找到完成它的方法...
非常感谢您的帮助!
我知道上面的部分是从文件中读取并解析为对象的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"}
}
]
}
在以下结构中,主要集中在区号上,然后将类别与其中实际位置联系起来。
{
"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/Node完成这个任务,希望找到一种比手动遍历所有对象并重构它们更优雅的方法。我研究了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));