Я новый разработчик, у меня есть объект Json, который я не знаю, это содержимое, которое мне нужно добавить в Tabulator.

По определению мне нужно добавить детали для каждого столбца, например:

var JSONData =[{A:12,B:3,C:13},{A:5,B:23,C:3},{A:1,B:30,C:103}]

var tabulator1 = new Tabulator("#table", {
    data:JSONData,
    columns:[
       {title:"A", field:"A", sorter:"string",align:"right", editor:true},
       {title:"B", field:"B", sorter:"string",align:"right", editor:true},
       {title:"C", field:"C", sorter:"string",align:"right", editor:true},
     ],
});

Сейчас он работает, но что, если var JSONData =[UNKNOWN LIST OF JSON DATA ]

Я знаю, как получить заголовки столбцов к Object.keys(JSONData[0])); Я могу оставить определение по умолчанию для таких столбцов

{title:"A", field:"A", sorter:"string",align:"right", editor:true},

Но как я могу перебрать неизвестные данные JSONData и добавить их в columns:[]?

Мне, вероятно, просто нужно будет хотя бы добавить данные заголовка и поля, чтобы табулятор работал правильно

Другое решение: я могу использовать flask-jinja2, чтобы перебрать его с внутренней стороны, но я не хочу максимально рассчитывать на ресурсы сервера.

1
Ayo Dev 26 Ноя 2018 в 16:32

1 ответ

Лучший ответ

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

var JSONData =[{A:12,B:3,C:13},{A:5,B:23,C:3},{A:1,B:30,C:103}]

var tabulator1 = new Tabulator("#table", {
  data:JSONData,
  columns:Object.keys(JSONData[0]).map(obj => {
    return {
      title: obj,
      field: obj,
      sorter: "string",
      align: "right",
      editor: true
    };
  });
});
1
lloydaf 26 Ноя 2018 в 13:39