Как проверить, существует ли объект Json или не используется Jquery? - PullRequest
2 голосов
/ 18 марта 2020

Я возвращаю сообщение об ошибке, используя ajax. возвращаемый объект, как показано ниже

{"readyState":4,"responseText":"{\"Message\":\"The request is invalid.\",\"ModelState\":{\"\":[\"Email 'dsfasdf' is invalid.\"]}}","responseJSON":{"Message":"The request is invalid.","ModelState":{"":["Email 'dsfasdf' is invalid."]}},"status":400,"statusText":"Bad Request"}

Я хочу знать, существует (showError.responseText).ModelState[""] или нет

Я пробовал оба следующих кода. Но не работает

if ((showError.responseText).ModelState[""]) {
            console.log('Key is exist in Object!');
}
if ((showError).hasOwnProperty("ModelState[0]")) {
    console.log('Key is exist in Object!');
}

1 Ответ

3 голосов
/ 18 марта 2020

Возвращаемое значение содержит вложенный JSON. jQuery будет десериализовать родительский объект для вас (при условии, что типы ответа MIME настроены правильно), однако вам придется вручную десериализовать repsonseText, прежде чем вы сможете работать с ним. Попробуйте это:

var response = {
  "readyState": 4,
  "responseText": "{\"Message\":\"The request is invalid.\",\"ModelState\":{\"\":[\"Email 'dsfasdf' is invalid.\"]}}",
  "responseJSON": {
    "Message": "The request is invalid.",
    "ModelState": {
      "": ["Email 'dsfasdf' is invalid."]
    }
  },
  "status": 400,
  "statusText": "Bad Request"
}

// in your AJAX handler function:
var rt = JSON.parse(response.responseText);
if (rt.ModelState)
  console.log(rt.ModelState);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...