Как напечатать массив JSON с вызовом AJAX в красивом формате для пользовательского интерфейса - PullRequest
1 голос
/ 23 марта 2020

Я пытаюсь проверить данные в модальном режиме. В случае ошибки отображается окно с предупреждением. Я получаю выходные данные API в следующем формате:

[{"Column":"ReportId","Result":"Invalid","Value":"repTest"}, 
{"Column":"Category","Result":"Invalid","Value":"testing"}]

Я хочу сделать его более читабельным для пользователя. Как получить что-то подобное в окне предупреждения:

ReportId недопустим из-за repTest
Категория недопустима из-за тестирования (или любой пользовательской строки между соответствующими значениями)

  $.ajax({
        type: 'POST',
        url: 'validate_report',
        contentType: 'application/json',
        data: JSON.stringify(AddreportRepoFinalObj),
        success: function (data) {
            if(data.indexOf('Failure') > -1){
                var e=JSON.stringify(data);
                pwIsf.alert({msg:'Failure'+e ,type:'error'});   
            }
            else if(data.indexOf('Success')>-1) 
            {
                document.getElementById('btn_addUpdate').removeAttribute('disabled')
                pwIsf.alert({msg:'Valid',type:'info'}); 
                $(validAddRepbtn).off();      
            }
            else{
                var a=data;                            // I want to access the value part here from the data. Like I want to get rcaReportID, Invalid and repTest only and not column result and value
               pwIsf.alert({msg:a, type:'error'}); 
            }
        },


    })

1 Ответ

1 голос
/ 23 марта 2020

Предполагая, что data в конечном условии if в вашем примере является строкой JSON, вам сначала нужно проанализировать ее в массиве объектов. Оттуда вы можете l oop пройти через него и создать свой вывод строки:

let data = '[{"Column":"ReportId","Result":"Invalid","Value":"repTest"},{"Column":"Category","Result":"Invalid","Value":"testing"}]'
let arr = JSON.parse(data);
var message = arr.map(o => `${o.Column} is ${o.Result} due to ${o.Value}`).join('\r\n');

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