从JSON中提取字段错误

时间:2016-01-31 22:35:01

标签: jquery json

我从服务器返回的JSON如下所示:

{
    "fieldErrors": [{
        "name": "content",
        "status": "The file 2015 Shift Schedule.xlsx exceeds the maximum file size: 51200 bytes."
    }]
}

使用Ajax我需要提取状态值。

这是我到目前为止所做的,但它并没有给我我想要的东西:

$.ajax({
     url: '../jsp/uploadfiletodb.jsp',
     type: 'POST',
     data: formData,
     async: false,
     cache: false,
     contentType: false,
     processData: false,
     success: function (returndata) {
     //handle any fieldErrors
     var json_obj = $.parseJSON(returndata);  //parse JSON
     $.each(json_obj, function(key,value) {
       alert(value.fieldErrors.status);
     });               
   }

它一直告诉我" TypeError:value.fieldErrors未定义"。如何访问状态值?

1 个答案:

答案 0 :(得分:1)

您尝试循环的不是数组。 对象。请改用:

$.ajax({
  url: '../jsp/uploadfiletodb.jsp',
  type: 'POST',
  data: formData,
  async: false,
  cache: false,
  contentType: false,
  processData: false,
  success: function (returndata) {
    //handle any fieldErrors
    var json_obj = $.parseJSON(returndata);  //parse JSON
    // You are not iterating a loop.
    alert(json_obj.fieldErrors[0].status);
  }
});

或者如果您想循环错误,那么您需要使用:

$.ajax({
  url: '../jsp/uploadfiletodb.jsp',
  type: 'POST',
  data: formData,
  async: false,
  cache: false,
  contentType: false,
  processData: false,
  success: function (returndata) {
    //handle any fieldErrors
    var json_obj = $.parseJSON(returndata);  //parse JSON
    // Looping through the errors
    $.each(json_obj.fieldErrors, function (index, value) {
      alert(value.status);
    });
  }
});