Задать вопрос
Rikisan
@Rikisan
техник-программист

Как вывести JSON таблицей не зная его содержимого и ключей?

При запросе к БД php файл возвращает ответ в виде JSON массива.
Так как запросы к БД могут быть разными я не знаю какие ключи будут в JSON

Можно ли как-то вывести JSON таблицей не зная его содержимого (ключей, кол-ва столбцов и строк)?
  • Вопрос задан
  • 359 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Rikisan
@Rikisan Автор вопроса
техник-программист
Сделал так
function print_request (json) {
  var array_key = [];
  $.each( json , function( key, val ){
    array_key = [];
    $.each( val , function( key, val ){
      array_key.push(key);
    });
  });
  var table_sql = '';
  $('#table_sql').text('');
  table_sql += '<table class="striped"><thead><tr>';
  for(var i=0; i <array_key.length; i++) {
    table_sql += '<th>'+array_key[i]+'</th>';
  }
  table_sql += '</tr></thead><tbody>';
  $.each( json , function( key, val ){
    table_sql += '<tr>';
    $.each( val , function( key, val ){
      table_sql += '<td>'+val+'</td>';
    });
    table_sql += '</tr>';
  });
  table_sql += '</tbody></table>';
  $('#table_sql').append(table_sql);
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
pterodaktil
@pterodaktil
js developer
На React было бы что-то в таком духе:
const MyTr = ({row}) => (
  <tr>
    {row.map((v, k) => <td key={k}>{v}</td>)}
  </tr>
);

class MyTable extends Component {
  render() {
    const { data } = this.props;

    return (
      <Table>
        {data.map((v, k) => <MyTr data={v} key={k}) />
      </Table>
    )
  }
}

Перенести на ванильку, думаю, проблем не составит, чуть больше кода получится
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы