Как игнорировать отсутствующую переменную в JSON с помощью javascript?
Всем привет, Доброе утро.
Во-первых, я новичок в этих предметах, и английский не является моим родным языком.
Спасибо за помощь.
Я разрабатываю тестовый скрипт на javascript, который получает значения из ответа JSON.
Смотрите пример ниже:
HTTP/1.1 200 OK
Content-Type: application/vnd.api+json
{ "data": [{ "type": "articles", "id": "1", "attributes": { "title": "JSON API paints my bikeshed!", "body": "The shortest article. Ever.", "created": "2015-05-22T14:56:29.000Z", "updated": "2015-05-22T14:56:28.000Z" }, "relationships": { "author": { "data": {"id": "42", "type": "people"} } } }], "included": [ { "type": "people", "id": "42", "attributes": { "name": "John", "age": 80, "gender": "male" } } ] }
Однако по какой-то причине некоторые переменные, которые должны входить в мой JSON-скрипт, отсутствуют, и по этой причине мои утверждения терпят неудачу. (представьте себе, например, что я утверждаю пол из ответа с ожидаемым полом, но пол ответа отсутствует, как будто код даже не имел пола с самого начала).
Я считаю, что это происходит потому, что гендерный лагерь необязателен.
В JAVA/groovy я знаю, что я мог бы использовать ? игнорировать недостающие переменные... Как я могу сделать то же самое в javascript?
Что я уже пробовал:
я пытаюсь с If/Else, но у меня ничего не вышло. В любом случае я хочу использовать более короткое решение и более оптимизированное для решения этой проблемы. Чем ближе я подхожу ? Уэллс,
F-ES Sitecore
Вы можете проверить поле "пол", чтобы увидеть, существует ли оно, как
если (yourObj.gender) {
// проверка гендерного поля
}
еще {
// никакого гендерного поля не существовало
}
Member 13705226
Итак, для каждого утверждения, которое я делаю, мне нужно подтвердить его существование?
F-ES Sitecore
Если они необязательны, то да.
Member 13705226
В groovy я видел использование "?" в коде для оценки этих случаев, устраняя необходимость создания IF ELSES. Какая-то библиотека из JS имеет такую функцию?
F-ES Sitecore
Если вам придется делать это часто, я уверен, что вы могли бы написать свою собственную функцию. js позволяет получить доступ к свойствам программно
var x = { "a": 1, "b": 2 };
alert(getOrDefault(x, "a", 0)); // 1
alert(getOrDefault(x, "b", 0)); // 2
alert(getOrDefault(x, "c", 0)); // 0
функция getOrDefault(obj, propName, defaultyValue)
{
if (obj[propName] === undefined) {
вернуться defaultyValue;
}
еще {
return obj[propName];
}
}
https://ponyfoo.com/articles/null-propagation-operator
Member 13705226
проблема в этой функции и в использовании IF / ELSE заключается в том, что она не позволяет мне проверять более низкие уровни из файла. Пример.
В сценарии, который я использовал в своем вопросе, мы включили лагерь, и внутри него у нас есть атрибуты, а под ними-имя, возраст и пол. Используя IF / ELSE, мне нужно оценить существование всех вышестоящих уровней. И функция onling доступ и обновление высшим уровнем для проверки. мне было интересно, позволяет ли Postman мне использовать библиотеки javascript
W∴ Balboos, GHB
Иногда приходится это делать. Я использовал набор записей SQL return recordset (C++) и должен был проверить нулевое возвращение для каждого поля - на всякий случай. Вы найдете вырезать/вставить, чтобы быть вашим другом!