Advertisement
bebo231312312321

Untitled

Jun 16th, 2023
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function fromJsonToHtmlTable(input) {
  2.  
  3.     let parsed = JSON.parse(input);
  4.  
  5.     let output = [];
  6.     let firstLine = [];
  7.  
  8.     output.push('<table>');
  9.  
  10.     let keys = Object.keys(parsed[0]);
  11.     if (keys.length > 0) {
  12.         for (let key of keys) {
  13.             firstLine.push(`<th>${escapeHtml(key)}</th>`);
  14.         }
  15.  
  16.         output.push(`  <tr>${firstLine.join('')}</tr>`);
  17.     }
  18.  
  19.     for (let obj of parsed) {
  20.         let secondLine = [];
  21.         for (let key of keys) {
  22.             let currentKey = obj[key];
  23.             secondLine.push(`<td>${escapeHtml(currentKey)}</td>`);
  24.         }
  25.  
  26.         output.push(`  <tr>${secondLine.join('')}</tr>`);
  27.  
  28.     }
  29.  
  30.     output.push('</table>');
  31.  
  32.     return output.join('\n');
  33.  
  34.     function escapeHtml(input) {
  35.         let inputStr = input.toString();
  36.         let pattern = /[&<>" ]/g;
  37.  
  38.         let escapes = {
  39.             '&': '&amp;',
  40.             '<': '&lt;',
  41.             '>': '&gt;',
  42.             '"': '&quot;',
  43.             ' ': '&nbsp;',
  44.  
  45.         };
  46.  
  47.         return inputStr.replace(pattern, a => escapes[a]);
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement