как извлекать данные из вложенного дочернего массива json в jquery datatable с помощью ajax

#jquery #asp.net-web-api #datatable

#jquery #asp.net-веб-api #поддающийся обработке данными #asp.net-web-api #datatable

Вопрос:

я получаю данные, когда извлекаю данные из корневого объекта этого json, но когда я пытаюсь извлечь данные из дочернего массива, они получаются в строковом формате, и я хочу, чтобы это был формат таблицы. Код Json

   [
   {
       "error": false,
       "data": [
           {
               "id": 1,
               "Name": "Shivraj Singh",
               "Mobile": "9787475412",
               "VehichleNo": "RJ 19 SV 4514",
           },
           {
               "id": 4,
               "Name": "Vinayak",
               "Mobile": "9782421454",
               "VehichleNo": "asdas",
           },
       ]
   }
]
  

Код, лежащий в основе

  table = $("#contact").DataTable({
            ajax: {
                //type: "POST",
                url: "/api/Contact",
                dataSrc: "",
            },
            columns: [
                {
                    data: "data[0].Name",

                },
                {
                    data: "data[0].Mobile",
                },
                {
                    data: "data[0].VehichleNo",
                },

            ],
        });
  

при этом получены данные не в правильном формате

Ответ №1:

В соответствии с образцом выходных данных JSON, приведенный ниже код должен работать. Здесь "aaData" просто передайте результат, который вы получаете от вызова api.

 $.ajax({
    'url': "/api/Contact",
    'method': "POST",
    'contentType': 'application/json'
}).done( function(response) {
    $('#contact').dataTable( {
        "aaData": response[0].data,
        "columns": [
            { "data": "id" },
            { "data": "Name" },
            { "data": "Mobile" },
            { "data": "VehichleNo" }
        ]
    })
})
  

Комментарии:

1. Приведенный выше метод дает мне «нет данных в моей таблице данных», но когда я использую тот же метод для родительского элемента json, такого как ошибка и дата, тогда он работает отлично, но я хочу получить данные второго массива в моей таблице

2. Просто поместите console.log(response.data) под выполненным методом ajax, вы получите четкое представление о данных ответа ajax и его формате. Если он дает вам массив, то в datatable просто используйте «aaData»: response.data[0], это даст вам данные в datatable.

3. Пожалуйста, измените ответ изменением, которое я предлагаю заменить «aaData»: ответ. данные по «aaData»: ответ [0].данные