鉴于以下json结果,我如何将validationErrors
键/值属性转换为javascript中的一个漂亮的数组对象,这样我就可以执行
errors[0].Key
或
errors[0].Value
等等......
注意:如果使用jQuery更容易进行转换,那么我很乐意使用它。另外,我通过jQuery获取数据 - > $.post
...)
更新
这是实际的json数据,所以有人可以用JSFiddle回答这个问题。
{
"aaaa": 0,
"bbbb": 0,
"cccc": null,
"validationErrors": {
"a1_7127763-1c7ac823-61d5-483f-a9ca-4947e9eb8145": "Invalid PropertyType. Please choose any property except Unknown.",
"a2_7127763-1c7ac823-61d5-483f-a9ca-4947e9eb8145": "A State is required. Eg. Victoria or New South Wales.",
"b1_5433417-18b5568a-d18e-45e2-9c63-30796995e2d3": "Invalid PropertyType. Please choose any property except Unknown.",
"b2_5433417-18b5568a-d18e-45e2-9c63-30796995e2d3": "A State is required. Eg. Victoria or New South Wales.",
"c1_6655305-297c57f9-a460-4101-be7d-70c6b9a565d5": "Invalid PropertyType. Please choose any property except Unknown.",
"c2_6655305-297c57f9-a460-4101-be7d-70c6b9a565d5": "A State is required. Eg. Victoria or New South Wales."
}
}
答案 0 :(得分:3)
我会获取对象的所有键,然后将它们映射到数组。
var arrayOfErrors = Object.keys(objectOfErrors).map(function(errorKey) {
return objectOfErrors[errorKey];
});
答案 1 :(得分:2)
您可以使用map
将对象转换为数组:
var errors = jQuery.map(data.validationErrors, function (value, key) {
return {
"Key": key,
"Value": value
};
});
JSFiddle展示了这种方法:http://jsfiddle.net/WgaFb/1/
如果您不想使用jQuery,这里有一个纯JavaScript方法:
var errors = [];
for(var key in data.validationErrors) {
errors.push({
"Key": key,
"Value": data.validationErrors[key]
});
}
第二种方法的JSFiddle:http://jsfiddle.net/4WXEF/1/