我有两个json文件:
F1.js:
{
"A": {
"time": "2015-11-26T08:20:15.130Z",
},
"B": {
"time": "2015-11-26T08:30:19.432Z",
{
"C": {
"time": "2015-11-26T08:20:15.130Z",
}
}
F2.js:
[{
"oaci": "A",
"latitude": "45.979722222222",
"longitude": "5.3377777777778"
},
{
"oaci": "B",
"latitude": "46.123333333333",
"longitude": "5.8047222222222"
},
{
"oaci": "C",
"latitude": "47.123333333333",
"longitude": "8.8047222222222"
},
{
"oaci": "D",
"latitude": "46.205555555556",
"longitude": "5.2916666666667"
}
]
我试着检查它是否是相同的“oaci”;在文件F1.json中添加纬度和经度项,否则什么都不做。
我尝试了这个结果
F1.js
{
"A": {
"time": "2015-11-26T08:20:15.130Z",
"latitude": "45.979722222222",
"longitude": "5.3377777777778"
},
"B": {
"time": "2015-11-26T08:30:19.432Z",
"latitude": "46.123333333333",
"longitude": "5.8047222222222"
{
"C": {
"time": "2015-11-26T08:20:15.130Z",
"latitude": "47.123333333333",
"longitude": "8.8047222222222"
}
}
我开始在json,任何人都可以指出我
答案 0 :(得分:1)
JavaScript (非Java)中的this:
var obj = {
"A": {
"time": "2015-11-26T08:20:15.130Z"
},
"B": {
"time": "2015-11-26T08:30:19.432Z"
},
"C": {
"time": "2015-11-26T08:20:15.130Z"
}
}
var list = [
{
"oaci": "A",
"latitude": "45.979722222222",
"longitude": "5.3377777777778"
},
{
"oaci": "B",
"latitude": "46.123333333333",
"longitude": "5.8047222222222"
},
{
"oaci": "C",
"latitude": "47.123333333333",
"longitude": "8.8047222222222"
},
{
"oaci": "D",
"latitude": "46.205555555556",
"longitude": "5.2916666666667"
}
]
function getListItem(name){
for(var i = 0; i < list.length; i++){
if(list[i].oaci == name){
return list[i];
}
}
}
for(var prop in obj){
var listItem = getListItem(prop);
obj[prop].latitude = listItem.latitude;
obj[prop].longitude = listItem.longitude;
}
console.log(JSON.stringify(obj, null, 2));
最后一行的输出:
{
"A": {
"time": "2015-11-26T08:20:15.130Z",
"latitude": "45.979722222222",
"longitude": "5.3377777777778"
},
"B": {
"time": "2015-11-26T08:30:19.432Z",
"latitude": "46.123333333333",
"longitude": "5.8047222222222"
},
"C": {
"time": "2015-11-26T08:20:15.130Z",
"latitude": "47.123333333333",
"longitude": "8.8047222222222"
}
}
答案 1 :(得分:1)
使用您的给定对象(android.support.v4.app.FragmentManager manager = getSupportFragmentManager();
和F1
)这应该成功
F2
F2.forEach(function(_data){
var currentData = F1[_data.oaci];
if (currentData) for (var prop in _data) if (prop !== 'oaci'){
currentData[prop] = _data[prop];
}
});
中包含的结果。
这是一个动态解决方案,因此如果您在对象中添加更多属性,它将继续有效。
答案 2 :(得分:1)
如果你调用时间戳对象t
和坐标列表c
,你可以像这样实现它:
for (timestamp in t) {
for (coordinate in c) {
if (c[coordinate]["oaci"] === timestamp) {
t[timestamp]["latitude"] = c[coordinate]["latitude"];
t[timestamp]["longitude"] = c[coordinate]["longitude"];
}
}
}