Как получить часть JSON для KendoDataSource - PullRequest
0 голосов
/ 28 мая 2018

Мне нужно заполнить KendoListView с внешнего сервера, и мне нужно использовать только часть ответа, который я читаю для сервлета Java

       var srcListView = new kendo.data.DataSource({
            transport: {
            read: {
                dataType: "json",
                url: "MainServlet",
                data:{event:"Test"},
            },
        },
    });

И ответ такой:

{
  "status": "ok",
  "response": {
    "trucks": [
      "A6U-905",
      "AHF-888",
      "AHP-779",
      "buzz"
    ]
  }
}

Мне нужен только массив грузовиков для kendoListView, я использую Kendo-ui, Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

В качестве альтернативы тому, что @ DontVoteMeDown говорит об использовании schema.parse, вы можете использовать более простое решение для подобных случаев, когда вам не нужно обрабатывать результат, а простовернуть то, что находится в элементе.Это решение определяет schema.data как имя поля, содержащего данные.В вашем примере:

new kendo.data.DataSource({
    transport: {
        read: {
                dataType: "json",
                url: "MainServlet",
                data:{event:"Test"},
        }
    },
    schema: {
        data: "response.trucks"
    }
});

Я рекомендую использовать schema.parse, когда вам нужно выполнить какое-то преобразование полученных данных, и schema.data, когда просто возвращается какой-то подэлемент полученного JSON.

0 голосов
/ 28 мая 2018

Используйте dataSource.schema.parse для фильтрации данных, которые будут использоваться в виджете:

new kendo.data.DataSource({
    transport: {
        read: {
                dataType: "json",
                url: "MainServlet",
                data:{event:"Test"},
        }
    },
    schema: {
        parse: function(data) {
            return (data && data.trucks ? data.trucks : []);
        }
    }
});
...