Как получить значения из объекта области видимости и сохранить в переменные JavaScript

У меня есть такие данные в формате JSON:

$scope.getData = function() {
    $http.get('profile.php').success(function(response) {
        $scope.profile = response;
    });
}

В результате получаю: [{"id":5,"name":"Максим","age":25,"date":"2018-05-20 12:30:00"}]

Мне нужно понять, как извлечь отдельные поля типа id и name из этого ответа и записать их в обычные JavaScript переменные. Примерно так:

var userId = id;
var userName = name;

Как правильно обратиться к этим полям и сохранить их значения? Пробовал разные способы, но ничего не получается. Подскажите, пожалуйста.

добавь проверку на пустой ответ, иначе словишь ошибку. я делаю так:

$http.get('profile.php').success(function(response) {
    if(response && response.length > 0) {
        var userId = response[0].id;
        var userName = response[0].name;
        // дальше работаешь с переменными
    }
});

безопаснее будет, особенно когда сервер пустые массивы возвращает

Проблема в том, что ответ приходит массивом, а не объектом. Сначала обратись к первому элементу response[0], потом указывай нужные поля. Вот так:

$scope.getData = function() {
    $http.get('profile.php').success(function(response) {
        $scope.profile = response;
        var userId = response[0].id;
        var userName = response[0].name;
    });
}

Так сможешь сохранить данные в переменные.

Можно использовать деструктуризацию, если нужно сразу извлечь несколько полей. Например, const {id, name, age} = response[0], а потом просто используй id и name как обычные переменные. Зачем тебе отдельные переменные? Возможно, проще работать с объектом напрямую.