Доступ к массиву, который заключен в object приходящий из crud php

Создан datatable на основе данных, которые приходят из crud php.

Задача: Каждые 10 секунд делать запрос в crud, сравнивать массивы данных и, если массивы отличаются, обновлять datatable.

Проблема: Не могу добраться до массива в объекте получая пустой массив вместо данных.

Вот мой объект выведенный через консоль js: Object

Когда, я пытаюсь добраться до массива:

data.dataSource.json

получаю следующий результат: Результат

Мне совершенно непонятно такое поведение, хотя уже уйму тем прочитал на различных форумах по Json и object. Но, возможно, не то читал.

Далее я планирую этот массив перевести в строку и сравнить новый и старый варианты. Если строки отличаются, но обновить данные.

Код:

    var data = new ej.data.DataManager({
    url: '<?php echo get_theme_file_uri( 'crudstaff2.php' ); ?>/?action=getData&month=<?php if ( empty($_POST['month'])) {   $date = time();  echo 'Jan';}else{echo $_POST['month'];}?>&year=<?php if ( empty($_POST['year1'])) {   $date = time(); echo date('Y',$date)+1;}else{echo $_POST['year1'];}?>',
    adaptor: new ej.data.ODataV4Adaptor(),
    offline: true
});

ej.grids.Grid.Inject(ej.grids.Filter, ej.grids.Page, ej.grids.Sort, ej.grids.Group, ej.grids.Freeze);
var grid = new ej.grids.Grid({
    dataSource: data,
    width: '100%',
     allowFiltering: true,
    filterSettings: { type:'Excel' },
    columns: []});

var filters = data.dataSource.json;
console.log(filters);


setInterval(function() {
       var data = new ej.data.DataManager({
    url: '<?php echo get_theme_file_uri( 'crudstaff2.php' ); ?>/?action=getData&month=<?php if ( empty($_POST['month'])) {   $date = time();  echo 'Jan';}else{echo $_POST['month'];}?>&year=<?php if ( empty($_POST['year1'])) {   $date = time(); echo date('Y',$date)+1;}else{echo $_POST['year1'];}?>',
    adaptor: new ej.data.ODataV4Adaptor(),
    offline: true
});
  grid.dataSource = data;
  grid.refresh();
}, 30000); 
    

Вот решение:

     var filters = data.dataSource.json;
  var filters2 = data2.dataSource.json;
  
  function showHello(filters, filters2){
  if(filters2 === undefined || filters2.length == 0 || filters === undefined || filters.length == 0){
      
    setTimeout
    (
        function()
        {
         

   var filters2 = data2.dataSource.json;
  var filters = data.dataSource.json; 
  console.log('0');
       showHello(filters, filters2);
        },
        1000
    );
  }
  else{
  var filters2 = data2.dataSource.json;
  var filters = data.dataSource.json;
  
  if(JSON.stringify(filters) === JSON.stringify(filters2)){
     
    
  }
  else {
    
      grid.dataSource = data2;
      grid.refresh();
      data = data2;
  }
  
  
  
  }
}
 showHello(filters, filters2); 

Ответы (0 шт):