我很肯定这个问题之前一定已被涵盖过,但我能找到它。所以....
我有一个像这样的对象
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()来获得看起来像这样的结果(我不想要):
//Don't want this
[
{"name": "Fred", "lastname": "Jones", "city": "Los Angeles"}
]
我正在与另一位开发人员合作,他说这是Jquery解析对象的方式(编辑 - 他正在使用$ serializeArray(),所以也许JQuery有一个方法来帮助我。
任何想法都会受到欢迎。
谢谢!
答案 0 :(得分:3)
此转换调用迭代源对象的属性并在结果数组中累积条目。
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 );
答案 1 :(得分:2)
var arr = []
for (var key in object_name) {
arr.push({'name': key, 'value': object_name[key]})
}
循环键并将其添加到数组中。
答案 2 :(得分:1)
您可以遍历对象属性并创建数组
var a = array();
for (p in obj) {
a.push({'name': p, 'value': obj[p]});
}
这应该得到你想要的结构。
答案 3 :(得分:0)
您应该可以在简单的for..in
循环中执行此操作。
var yourObject = { name: "Fred", lastname: "Jones", city: "Los Angeles" },
parsed = [];
for(var i in yourObject){
parsed.push({ name: i, value: yourObject[i]})
}