是否有一种简单的方法将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]})
}