如何从JSON属性在Javascript中创建变量名
我需要在Javascript中设置简单的var,以每个JSON行上循环的JSON属性命名。它们的值也将来自JSON 例如,这里是我的模板:var paris={lat:48.866667,lng:2.333333} 但是在Json行上有一个循环 var json[i]。代码={lat:json[i]。纬度,lng:json[i]。经度} 这是我的JS代码,到目前为止我还不知道如何让它工作。。。谢谢你宝贵的帮助如何从JSON属性在Javascript中创建变量名,javascript,json,variables,Javascript,Json,Variables,我需要在Javascript中设置简单的var,以每个JSON行上循环的JSON属性命名。它们的值也将来自JSON 例如,这里是我的模板:var paris={lat:48.866667,lng:2.333333} 但是在Json行上有一个循环 var json[i]。代码={lat:json[i]。纬度,lng:json[i]。经度} 这是我的JS代码,到目前为止我还不知道如何让它工作。。。谢谢你宝贵的帮助 function initMap() { //my template
function initMap() {
//my template
var paris = {lat: 48.866667, lng: 2.333333};
//my actual data
var json=[{"code":"london","latitude":"50.633333","longitude":"3.066667"},{"code":"berlin","latitude":"47.478419","longitude":"-0.563166"}];
//my code to create my vars from Json
for( var i=0;i< json.length; i++ ){
var json[i].code = "{lat:" + json[i].latitude + " , lng: " +json[i].longitude +" }";
}
}
}
下面是使用Array.reduce进行的转换,该转换可回溯到IE10: 函数初始化映射{ //你的模板 var paris={lat:48.866667,lng:2.333333}; //你的实际数据 var-json=[ {代码:伦敦,纬度:50.633333,经度:3.066667}, {代码:柏林,纬度:47.478419,经度:-0.563166} ]; //创建新对象的代码 var newObj=json.reduceobj,数据=>{ obj[data.code]={lat:data.latitude,lng:data.longitude}; 返回obj; }, {}; console.logJSON.stringifynewObj,0,2; }
initMap 首先,当声明变量时,您不应该像下面这样使用关键字var:var json[i].code,只需写:json[i].code即可 然后,当您在代码中使用JSON时,您不需要在Javascript中将两者之间放置任何内容 只要这样做:
{
latitude: 50.6,
longitude: 50.7
}
而不是这个:
"{
latitude: 50.6,
longitude: 50.7
}"
然后,您将得到以下结果:
函数初始化映射{
巴黎var={
拉脱维亚:48.866667,
液化天然气:2.333333
};
var json=[
{
代码:伦敦,
纬度:50.633333,
经度:3.066667
},
{
代码:柏林,
纬度:47.478419,
经度:-0.563166
}
];
//从Json创建变量的代码
forvar i=0;i你的答案中还有几个错误。1.您留下了一个无效的}2。您的json解析格式仍然不正确,因为无法使用单引号对json.parse进行解析。3.即使在修复了格式错误后,您的end json也将返回无效响应。[{代码:{lat:50.633333,lng:3.066667},纬度:50.633333,经度:3.066667},{代码:{lat:47.478419,lng:-0.563166},纬度:47.478419,经度:-0.563166}他将失去我认为重要的房产名称。我们怎么知道哪个元素适合伦敦?哪个去柏林?这段代码没有解释这一点。是的,这是一个错误,Sorry我不明白他是想用城市的名字创建一个JSON对象,还是想把这个名字放在主JSON对象中
"{
latitude: 50.6,
longitude: 50.7
}"