Member 13705226 Ответов: 0

Как игнорировать отсутствующую переменную в 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++) и должен был проверить нулевое возвращение для каждого поля - на всякий случай. Вы найдете вырезать/вставить, чтобы быть вашим другом!

0 Ответов