Cart Licenses Contact Support Online Creator Log in/Register
v 1.9.43

Access Survey Results

This help topic describes how you can access, modify, and display individual question values and full survey results.

Access Individual Question Values

To access an individual question value, use the question's value property. You can assign a new value to it if you want to update the question value programmatically. Alternatively, you can call the Survey's getValue(questionName) and setValue(questionName, newValue) methods.

The following code configures an nps_score question and uses the API members described above to access the question's value:

import { Model } from "survey-core";

const surveyJson = {
  "elements": [{
    "type": "rating",
    "name": "nps_score",
    "title": "On a scale of zero to ten, how likely are you to recommend our product to a friend or colleague?",
    "rateMin": 0,
    "rateMax": 10,
const survey = new Model(surveyJson);
const npsQuestion = survey.getQuestionByName("nps_score");

// ===== or =====
// console.log(survey.getValue("nps_score"));

npsQuestion.value = 10;
// ===== or =====
// console.log(survey.setValue("nps_score", 10));

If you need to access an individual question value before or immediately after it is changed, handle the Survey's onValueChanging or onValueChanged events:

survey.onValueChanging.add((survey, { name, question, oldValue, value }) => {
  console.log(`The ${name} question value is about to change from ${oldValue} to ${value}.`);
  // You can redefine the `value` argument if you want to change the question value:
  // value = myNewValue;

survey.onValueChanged.add((survey, { name, question, value }) => {
  console.log(`The ${name} question value has changed to ${value}.`);

Access Full Survey Results

To access full survey results, use the Survey's data property. It contains a JSON object with answered questions and has the following structure:

  "question1Name": "question1Value",
  "question2Name": "question2Value",
  // ...
  "questionNName": "questionNValue",

Depending on the question type, question values can also be nested objects or arrays that contain objects or primitive values:

  "question1Name": [ "value1", "value2", ... ],
  "question2Name": {
    "nestedQuestion1Name": "nestedQuestion1Value",
    "nestedQuestion2Name": "nestedQuestion2Value",
    // ...
  // ...

The following code outputs the data property into the browser's console:

import { Model } from "survey-core";

const surveyJson = { ... };
const survey = new Model(surveyJson);


If you need to get survey results as an array of JavaScript objects, call the Survey's getPlainData() method. The objects in the array have the following structure:

  name: String, // Question name
  title: String, // Question title
  value: any, // Question value
  displayValue: String, // Question value converted to string
  isNode: Boolean, // `true` if the question contains more than one value
  // Details about the values. Present only if `isNode` is `true`
  data: Array<{ name, title, value, displayValue, isNode, data}>

The following code shows how to call the getPlainData() method and output the result into the browser's console:


See Also

Tell Us What You Think

Help us serve you better by taking this brief survey.
We are interested to learn more about your
experience of using our libraries.

We'd really appreciate your feedback.

Start the Survey

Approximate time to complete: 2 min.