如何将此AJAX json结果(具有key/value属性)转换为javascript数组

如何将此AJAX json结果(具有key/value属性)转换为javascript数组,javascript,ajax,json,rest,Javascript,Ajax,Json,Rest,给定下面的json结果,如何将validationErrorskey/value属性转换为javascript中的一个漂亮的数组对象,以便执行以下操作 错误[0]。键 或 错误[0]。值等 注意:如果使用jQuery进行转换更容易,那么我很乐意使用它。另外,我通过jQuery->$获取数据 更新: 这是实际的json数据,所以有人可以用JSFIDLE回答这个问题 { "aaaa": 0, "bbbb": 0, "cccc": null, "validationErrors":

给定下面的json结果,如何将
validationErrors
key/value属性转换为javascript中的一个漂亮的数组对象,以便执行以下操作

错误[0]。键

错误[0]。值

注意:如果使用jQuery进行转换更容易,那么我很乐意使用它。另外,我通过jQuery->
$获取数据

更新:

这是实际的json数据,所以有人可以用JSFIDLE回答这个问题

{
  "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."
  }
}

我将获取对象的所有键,然后将它们映射到一个数组

var arrayOfErrors = Object.keys(objectOfErrors).map(function(errorKey) {
  return objectOfErrors[errorKey];
});

我将获取对象的所有键,然后将它们映射到一个数组

var arrayOfErrors = Object.keys(objectOfErrors).map(function(errorKey) {
  return objectOfErrors[errorKey];
});
可以使用将对象转换为数组:

var errors = jQuery.map(data.validationErrors, function (value, key) {
    return {
        "Key": key,
        "Value": value
    };
});
JSFIDLE显示了这种方法:


如果您不想使用jQuery,这里有一个纯JavaScript方法:

var errors = [];
for(var key in data.validationErrors) {
    errors.push({
        "Key": key,
        "Value": data.validationErrors[key]
    });
}
第二种方法的jsidle:

您可以使用它将对象转换为数组:

var errors = jQuery.map(data.validationErrors, function (value, key) {
    return {
        "Key": key,
        "Value": value
    };
});
JSFIDLE显示了这种方法:


如果您不想使用jQuery,这里有一个纯JavaScript方法:

var errors = [];
for(var key in data.validationErrors) {
    errors.push({
        "Key": key,
        "Value": data.validationErrors[key]
    });
}

第二种方法的jsidle:

实际的JSON数据在哪里?我们需要查看数据的实际结构和属性,以了解如何向您提供建议。只需将post函数的datype参数作为
json
jquery将自动转换它。@jfriend00您正在查看完整的结构!这是一个json结果的屏幕截图,内容被遮住了。实际的json数据在哪里?我们需要查看数据的实际结构和属性,以了解如何向您提供建议。只需将post函数的datype参数作为
json
jquery将自动转换它。@jfriend00您正在查看完整的结构!这是一个json结果的屏幕截图,内容被遮住了。map是jQuery还是JS方法?@Pure.Krome:@FelixKling-我想MDN的内容严格来说是JavaScript™, 但是我认为OP真的想知道它是否是纯ECMAScript,它是:,。@RobG:MDN也链接到规范。map是jQuery还是JS方法?@Pure.Krome:@FelixKling-我想MDN的东西严格来说是JavaScript™, 但是我认为OP真的想知道它是否是纯ECMAScript,它是:,。@RobG:MDN链接到规范。使用示例数据更新了开始主题/帖子,对于您的JSFIDLE示例:)@Pure.Krome我已经更新了JSFIDLE链接以包含您的数据示例。您将看到每个答案的中间部分都是这个答案的直接复制粘贴。使用示例数据更新了开头主题/帖子,对于您的JSFIDLE示例:)@Pure.Krome我已经更新了JSFIDLE链接以包含您的数据示例。您将看到,每个答案的中间部分是此答案的直接复制粘贴。