如何使用动态键格式化 json? [复制]
Posted
技术标签:
【中文标题】如何使用动态键格式化 json? [复制]【英文标题】:How can I format a json, with dynamic keys? [duplicate] 【发布时间】:2018-08-06 14:31:17 【问题描述】: var data= [_id: "5a93cbd49ae761a4015f6346", nombre: "Chicago - Missouri", longitud: "-94.6807924", latitud: "38.287606",
_id: "5a93ca539ae761a4015f6344", nombre: "Boston - Central Falss", longitud: "-71.4111895", latitud: "41.8902971",
_id: "5a93ccbf9ae761a4015f6349", nombre: "Houston - Dallas", longitud: "-97.0117365", latitud: "32.8209296"]
var d=[];
for(var i in data)
d.push( data[i].nombre:data[i]["_id"] )
我想要一个有结构的json
"nombre":"_id"
例如:
"Chicago - Missouri":"5a93cbd49ae761a4015f6346"
"Boston - Central Falss- Missouri": "5a93ca539ae761a4015f6344" 4
我的错误是什么?
谢谢
【问题讨论】:
【参考方案1】:试试这个 -
var data= [_id: "5a93cbd49ae761a4015f6346", nombre: "Chicago - Missouri", longitud: "-94.6807924", latitud: "38.287606",
_id: "5a93ca539ae761a4015f6344", nombre: "Boston - Central Falss", longitud: "-71.4111895", latitud: "41.8902971",
_id: "5a93ccbf9ae761a4015f6349", nombre: "Houston - Dallas", longitud: "-97.0117365", latitud: "32.8209296"]
var d =[];
for(var i in data)
var pushObj = ;
pushObj[data[i].nombre] = data[i]["_id"];
d.push(pushObj)
console.log(d);
【讨论】:
Array.prototype.map()
更快。它的运行速度大约是一次推入一个新数组的四倍。在我看来它更简单,但这是一个见仁见智的问题。 var newData = data.map( function(train) let obj = ; obj[train["_id"]] = train["nombre"]; return obj; ); console.log(newData);
【参考方案2】:
先创建一个对象,添加数据后推入d
var data= [
_id: "5a93cbd49ae761a4015f6346",
nombre: "Chicago - Missouri",
longitud: "-94.6807924",
latitud: "38.287606"
,
_id: "5a93ca539ae761a4015f6344",
nombre: "Boston - Central Falss",
longitud: "-71.4111895",
latitud: "41.8902971"
,
_id: "5a93ccbf9ae761a4015f6349",
nombre: "Houston - Dallas",
longitud: "-97.0117365",
latitud: "32.8209296"
]
var d=[];
for(var i in data)
var temp = ;
temp[ data[i].nombre ] = data[i]["_id"];
d.push(temp)
console.log(d);
【讨论】:
以上是关于如何使用动态键格式化 json? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在JSON格式的android动态键值对中动态获取输入数据
如何使用 Swifty 动态创建具有多个键和值的 json 对象