Как получить значения Array в отдельном Variabales - PullRequest
0 голосов
/ 02 ноября 2018

Я использую AJAX и получаю ответ в формате JSON, но я не знаю, как разделить каждый формат массива в одной переменной я получаю это Ответ

final_string =     [{"stars":1,"q1":0,"q2":0,"q3":0,"q4":0,"q5":0,"q6":0,"q7":0,"q8":0,"q9":0,"q10":0,"q11":0},
    {"stars":2,"q1":0,"q2":0,"q3":0,"q4":0,"q5":0,"q6":0,"q7":0,"q8":0,"q9":0,"q10":0,"q11":0},
    {"stars":3,"q1":1,"q2":1,"q3":1,"q4":1,"q5":1,"q6":1,"q7":1,"q8":1,"q9":1,"q10":1,"q11":0},
    {"stars":4,"q1":0,"q2":0,"q3":0,"q4":0,"q5":0,"q6":0,"q7":0,"q8":0,"q9":0,"q10":0,"q11":0},
    {"stars":5,"q1":17,"q2":17,"q3":17,"q4":17,"q5":17,"q6":17,"q7":17,"q8":17,"q9":17,"q10":17,"q11":17}  ]

    [ {"feedback":"Ambience"},
    {"feedback":"Efficiency of Service"},
    {"feedback":"Friendly and Attentive"},
    {"feedback":"Variety in Menu"},
    {"feedback":"Presentation of Food \u0026 Beverages"},
    {"feedback":"Quality and Taste of Beverages"},
    {"feedback":"Quality and Taste of Food"},
    {"feedback":"Anticipated your needs Prior to Asking"},
    {"feedback":"Value for Money"},
    {"feedback":"We made you feel like a Valued Guest"},
    {"feedback":"Would you Recommend us to Others"}  ]

я просто хочу сделать это как

variable1 =  [{"stars":1,"q1":0,"q2":0,"q3":0,"q4":0,"q5":0,"q6":0,"q7":0,"q8":0,"q9":0,"q10":0,"q11":0},
    {"stars":2,"q1":0,"q2":0,"q3":0,"q4":0,"q5":0,"q6":0,"q7":0,"q8":0,"q9":0,"q10":0,"q11":0},
    {"stars":3,"q1":1,"q2":1,"q3":1,"q4":1,"q5":1,"q6":1,"q7":1,"q8":1,"q9":1,"q10":1,"q11":0},
    {"stars":4,"q1":0,"q2":0,"q3":0,"q4":0,"q5":0,"q6":0,"q7":0,"q8":0,"q9":0,"q10":0,"q11":0},
    {"stars":5,"q1":17,"q2":17,"q3":17,"q4":17,"q5":17,"q6":17,"q7":17,"q8":17,"q9":17,"q10":17,"q11":17}  ]

variable2 =  [ {"feedback":"Ambience"},
    {"feedback":"Efficiency of Service"},
    {"feedback":"Friendly and Attentive"},
    {"feedback":"Variety in Menu"},
    {"feedback":"Presentation of Food \u0026 Beverages"},
    {"feedback":"Quality and Taste of Beverages"},
    {"feedback":"Quality and Taste of Food"},
    {"feedback":"Anticipated your needs Prior to Asking"},
    {"feedback":"Value for Money"},
    {"feedback":"We made you feel like a Valued Guest"},
    {"feedback":"Would you Recommend us to Others"}  ]

Аякс

 $.ajax({
                type: "POST",
                url: "FeedBackGraph.aspx/getFeedBackdata",
                data: JSON.stringify(obj),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (Response) {
                    debugger;
                    console.log("Response",Response);
                    var d = Response.d; // Response
                    },
                error: function (result) {
                }
            });

Понятия не имею, как разделить каждую переменную с помощью JavaScript / jquery?

Ответы [ 5 ]

0 голосов
/ 02 ноября 2018
const data = final_string.match(/\[(\r\n|\r|\n|.)+?\]/g).map(s => JSON.parse(s))
const variable1 = data[0]
const variable2 = data[1]

Это может быть работа, но не хорошо.

const final_string_1 = "[[...],[...]]" 
const final_string_2 = "[...], [...]"

Этот формат может быть лучше для разбора.

0 голосов
/ 02 ноября 2018

вы можете использовать уничтожение из ES6

const [variable1, variable2] = final_string
0 голосов
/ 02 ноября 2018

Предположим, что вы исправили неверную проблему JSON, тогда ES6 разрешит использовать деструктурирующее назначение :

const [variable1, variable2] = final_string

final_string = [
  [{
      "stars": 1,
      "q1": 0,
      "q2": 0,
      "q3": 0,
      "q4": 0,
      "q5": 0,
      "q6": 0,
      "q7": 0,
      "q8": 0,
      "q9": 0,
      "q10": 0,
      "q11": 0
    },
    {
      "stars": 2,
      "q1": 0,
      "q2": 0,
      "q3": 0,
      "q4": 0,
      "q5": 0,
      "q6": 0,
      "q7": 0,
      "q8": 0,
      "q9": 0,
      "q10": 0,
      "q11": 0
    },
    {
      "stars": 3,
      "q1": 1,
      "q2": 1,
      "q3": 1,
      "q4": 1,
      "q5": 1,
      "q6": 1,
      "q7": 1,
      "q8": 1,
      "q9": 1,
      "q10": 1,
      "q11": 0
    },
    {
      "stars": 4,
      "q1": 0,
      "q2": 0,
      "q3": 0,
      "q4": 0,
      "q5": 0,
      "q6": 0,
      "q7": 0,
      "q8": 0,
      "q9": 0,
      "q10": 0,
      "q11": 0
    },
    {
      "stars": 5,
      "q1": 17,
      "q2": 17,
      "q3": 17,
      "q4": 17,
      "q5": 17,
      "q6": 17,
      "q7": 17,
      "q8": 17,
      "q9": 17,
      "q10": 17,
      "q11": 17
    }
  ],

  [{
      "feedback": "Ambience"
    },
    {
      "feedback": "Efficiency of Service"
    },
    {
      "feedback": "Friendly and Attentive"
    },
    {
      "feedback": "Variety in Menu"
    },
    {
      "feedback": "Presentation of Food \u0026 Beverages"
    },
    {
      "feedback": "Quality and Taste of Beverages"
    },
    {
      "feedback": "Quality and Taste of Food"
    },
    {
      "feedback": "Anticipated your needs Prior to Asking"
    },
    {
      "feedback": "Value for Money"
    },
    {
      "feedback": "We made you feel like a Valued Guest"
    },
    {
      "feedback": "Would you Recommend us to Others"
    }
  ]
]

const [variable1, variable2] = final_string

console.log(variable1)
console.log(variable2)
0 голосов
/ 02 ноября 2018

Вы получаете данные правильно, но это не правильный JSON. JSON должен быть таким,

[   

  [put your star array here],
  [put your feedback array here]

]

итоговый код ответа будет выглядеть примерно так:

[
  [{"stars":1,"q1":0,"q2":0,"q3":0,"q4":0,"q5":0,"q6":0,"q7":0,"q8":0,"q9":0,"q10":0,"q11":0},
    {"stars":2,"q1":0,"q2":0,"q3":0,"q4":0,"q5":0,"q6":0,"q7":0,"q8":0,"q9":0,"q10":0,"q11":0},
    {"stars":3,"q1":1,"q2":1,"q3":1,"q4":1,"q5":1,"q6":1,"q7":1,"q8":1,"q9":1,"q10":1,"q11":0},
    {"stars":4,"q1":0,"q2":0,"q3":0,"q4":0,"q5":0,"q6":0,"q7":0,"q8":0,"q9":0,"q10":0,"q11":0},
    {"stars":5,"q1":17,"q2":17,"q3":17,"q4":17,"q5":17,"q6":17, "q7":17,"q8":17,"q9":17, "q10":17,"q11":17}  ],


[ {"feedback":"Ambience"},
    {"feedback":"Efficiency of Service"},
    {"feedback":"Friendly and Attentive"},
    {"feedback":"Variety in Menu"},
    {"feedback":"Presentation of Food \u0026 Beverages"},
    {"feedback":"Quality and Taste of Beverages"},
    {"feedback":"Quality and Taste of Food"},
    {"feedback":"Anticipated your needs Prior to Asking"},
    {"feedback":"Value for Money"},
    {"feedback":"We made you feel like a Valued Guest"},
    {"feedback":"Would you Recommend us to Others"}  ]

]

Вы должны сделать вышеупомянутое в backend. Удалите final_string = из ответа, вам это не нужно.

И в вашем обработчике успеха вы можете сделать что-то подобное, чтобы получить звезды и массив обратной связи.

var variable1 = Response[0];
var variable2 = Response[1];
0 голосов
/ 02 ноября 2018

наверное тебе это нужно.

    var final_string =    [ [{"stars":1,"q1":0,"q2":0,"q3":0,"q4":0,"q5":0,"q6":0,"q7":0,"q8":0,"q9":0,"q10":0,"q11":0},
    {"stars":2,"q1":0,"q2":0,"q3":0,"q4":0,"q5":0,"q6":0,"q7":0,"q8":0,"q9":0,"q10":0,"q11":0},
    {"stars":3,"q1":1,"q2":1,"q3":1,"q4":1,"q5":1,"q6":1,"q7":1,"q8":1,"q9":1,"q10":1,"q11":0},
    {"stars":4,"q1":0,"q2":0,"q3":0,"q4":0,"q5":0,"q6":0,"q7":0,"q8":0,"q9":0,"q10":0,"q11":0},
    {"stars":5,"q1":17,"q2":17,"q3":17,"q4":17,"q5":17,"q6":17,"q7":17,"q8":17,"q9":17,"q10":17,"q11":17}  ],

    [ {"feedback":"Ambience"},
    {"feedback":"Efficiency of Service"},
    {"feedback":"Friendly and Attentive"},
    {"feedback":"Variety in Menu"},
    {"feedback":"Presentation of Food \u0026 Beverages"},
    {"feedback":"Quality and Taste of Beverages"},
    {"feedback":"Quality and Taste of Food"},
    {"feedback":"Anticipated your needs Prior to Asking"},
    {"feedback":"Value for Money"},
    {"feedback":"We made you feel like a Valued Guest"},
    {"feedback":"Would you Recommend us to Others"}  ]]
var pp=Object.assign({}, final_string)
var z=Object.keys(pp)
var constVar="variable";
var newObj={};
for(var i=0;i<z.length;i++)
{
    var key=constVar+z[i];
    newObj[key]=pp[z[i]];
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...