Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一种简单的方法将Javascript对象转换为;“名称”:&引用;“弗雷德”&引用;“值”:&引用;“蓝色”;样式对?_Javascript_Jquery_Json - Fatal编程技术网

是否有一种简单的方法将Javascript对象转换为;“名称”:&引用;“弗雷德”&引用;“值”:&引用;“蓝色”;样式对?

是否有一种简单的方法将Javascript对象转换为;“名称”:&引用;“弗雷德”&引用;“值”:&引用;“蓝色”;样式对?,javascript,jquery,json,Javascript,Jquery,Json,我敢肯定这个问题以前一定被讨论过,但我能找到它。所以 我有一个这样的目标 Object name: Fred lastname: Jones city: Los Angeles 我想使用Javascript将其转换为如下所示的字符串: //Do want this [ {"name": "name", "value": "Fred"}, {"name": "lastname", "value": "Jones"}, {"name": "city", "value": "Los Angel

我敢肯定这个问题以前一定被讨论过,但我能找到它。所以

我有一个这样的目标

Object
name: Fred
lastname: Jones
city: Los Angeles
我想使用Javascript将其转换为如下所示的字符串:

//Do want this
[
 {"name": "name", "value": "Fred"},
 {"name": "lastname", "value": "Jones"},
 {"name": "city", "value": "Los Angeles"}
]
我发现的所有示例都使用JSON.parse()获得如下结果(我不希望这样):

我正在与另一位开发人员合作,他说这就是Jquery解析对象的方式(编辑-他正在使用$serializeArray()),所以也许Jquery有一个方法可以帮助我

任何想法都是非常受欢迎的


谢谢!

此转换要求迭代源对象的属性并在结果数组中累积条目

function toList( obj ) {
  var rv = [], k;
  for (k in obj) {
    if (obj.hasOwnProperty(k))
      rv.push({ name: k, value: obj[k] });
  }
  return rv;
}

var list = toList( myObject );

可以循环查看对象属性并创建数组

var a = array();
for (p in obj) {
    a.push({'name': p, 'value': obj[p]});
}

这应该得到您想要的结构。

您应该能够在一个简单的
for..in
循环中完成

var yourObject = { name: "Fred", lastname: "Jones", city: "Los Angeles" },
    parsed = [];

for(var i in yourObject){
   parsed.push({ name: i, value: yourObject[i]})
}

循环遍历键并将其添加到数组中。

所需格式的优点是什么?简而言之,只需将键-值对拆分为(名称-键、值-值)对象。应该是简单的,有一个简单的循环。你为什么想要属性的名称?对象不需要解析。谢谢大家的帮助。这没有什么好处。我讨厌它。我不想这样做。但是以前的开发人员使用Jquery serialize()保存数据方法,现在我不得不以同样的方式保存我的数据。我手动编写了一个循环,但我认为可能缺少了一个下划线方法。你能快速地说“重构”20次吗:)谢谢尼尔-我真的很感谢你的帮助。谢谢Schleis-非常感谢你的建议。谢谢ajm-我会尝试一下。干杯
var yourObject = { name: "Fred", lastname: "Jones", city: "Los Angeles" },
    parsed = [];

for(var i in yourObject){
   parsed.push({ name: i, value: yourObject[i]})
}
var arr = []
for (var key in object_name) {
    arr.push({'name': key, 'value': object_name[key]})
}