如何使用动态键格式化 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 对象

如何在 dart 中解析动态 JSON 键

如何解析嵌套 JSON 结果中的动态 JSON 键?

如何在 ngFor 中显示一个简单 json 的所有键和值? [复制]

如何解析具有动态键名的嵌套 json