javascript — Формат даты JsonResult для ASP.NET MVC

Симпатичная печать реализована изначально в JSON.stringify(). Третий аргумент включает красивую печать и устанавливает интервал для использования:

var str = JSON.stringify(obj, null, 2); // spacing level = 2

Сортировка выбора:

function syntaxHighlight(json) {
    if (typeof json != 'string') {
         json = JSON.stringify(json, undefined, 2);
    }
    json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
    return json.replace(/("(\u[a-zA-Z0-9]{4}|\[^u]|[^\"])*"(s*:)?|b(true|false|null)b|-?d (?:.d*)?(?:[eE][ -]?d )?)/g, function (match) {
        var cls = 'number';
        if (/^"/.test(match)) {
            if (/:$/.test(match)) {
                cls = 'key';
            } else {
                cls = 'string';
            }
        } else if (/true|false/.test(match)) {
            cls = 'boolean';
        } else if (/null/.test(match)) {
            cls = 'null';
        }
        return '<span class="'   cls   '">'   match   '</span>';
    });
}

Смотрите в действии здесь: Кодирование объекта

Или полный фрагмент, представленный ниже:

function output(inp) {
    document.body.appendChild(document.createElement('pre')).innerHTML = inp;
}

function syntaxHighlight(json) {
    json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
    return json.replace(/("(\u[a-zA-Z0-9]{4}|\[^u]|[^\"])*"(s*:)?|b(true|false|null)b|-?d (?:.d*)?(?:[eE][ -]?d )?)/g, function (match) {
        var cls = 'number';
        if (/^"/.test(match)) {
            if (/:$/.test(match)) {
                cls = 'key';
            } else {
                cls = 'string';
            }
        } else if (/true|false/.test(match)) {
            cls = 'boolean';
        } else if (/null/.test(match)) {
            cls = 'null';
        }
        return '<span class="'   cls   '">'   match   '</span>';
    });
}

var obj = {a:1, 'b':'foo', c:[false,'false',null, 'null', {d:{e:1.3e5,f:'1.3e5'}}]};
var str = JSON.stringify(obj, undefined, 4);

output(str);
output(syntaxHighlight(str));
pre {outline: 1px solid #ccc; padding: 5px; margin: 5px; }
.string { color: green; }
.number { color: darkorange; }
.boolean { color: blue; }
.null { color: magenta; }
.key { color: red; }

В вашем случае: объект , но сейчас мы собираемся попробовать этот подход String 30 августа ’12 в 0:53

var jsonString = '{"some":"json"}';
var jsonPretty = JSON.stringify(JSON.parse(jsonString),null,2);  

Это создает объект JSON из строки, а затем преобразует его обратно в строку, используя симпатичную печать JSON stringify.

Как я могу перенаправить пользователя с одной страницы на другую, используя jQuery или чистый JavaScript?

function JSONstringify(json) {
    if (typeof json != 'string') {
        json = JSON.stringify(json, undefined, 't');
    }

    var 
        arr = [],
        _string = 'color:green',
        _number = 'color:darkorange',
        _boolean = 'color:blue',
        _null = 'color:magenta',
        _key = 'color:red';

    json = json.replace(/("(\u[a-zA-Z0-9]{4}|\[^u]|[^\"])*"(s*:)?|b(true|false|null)b|-?d (?:.d*)?(?:[eE][ -]?d )?)/g, function (match) {
        var style = _number;
        if (/^"/.test(match)) {
            if (/:$/.test(match)) {
                style = _key;
            } else {
                style = _string;
            }
        } else if (/true|false/.test(match)) {
            style = _boolean;
        } else if (/null/.test(match)) {
            style = _null;
        }
        arr.push(style);
        arr.push('');
        return '%c'   match   '%c';
    });

    arr.unshift(json);

    console.log.apply(console, arr);
}

Вот букмарклет, который вы можете использовать:

javascript:function JSONstringify(json) {if (typeof json != 'string') {json = JSON.stringify(json, undefined, 't');}var arr = [],_string = 'color:green',_number = 'color:darkorange',_boolean = 'color:blue',_null = 'color:magenta',_key = 'color:red';json = json.replace(/("(\u[a-zA-Z0-9]{4}|\[^u]|[^\"])*"(s*:)?|b(true|false|null)b|-?d (?:.d*)?(?:[eE][ -]?d )?)/g, function (match) {var style = _number;if (/^"/.test(match)) {if (/:$/.test(match)) {style = _key;} else {style = _string;}} else if (/true|false/.test(match)) {style = _boolean;} else if (/null/.test(match)) {style = _null;}arr.push(style);arr.push('');return '%c'   match   '%c';});arr.unshift(json);console.log.apply(console, arr);};void(0);

И функции очень просты:

var obj = {a:1, 'b':'foo', c:[false,null, {d:{e:1.3e5}}]};
JSONstringify(obj);

Редактировать: я только что попытался сбежать % символ с этой строкой, после объявления переменных:

json = json.replace(/%/g, '%%');

, но я обнаружил, что Chrome не поддерживает экранирование % в консоли. Странно. .. Возможно, это сработает в будущем.

berserk

enter image description here

Начиная с 2016 года, протестировано и работает на Chrome, Firefox, IE11, даже IE8 (см. последний расширением JSONView Chrome объект.

Работает в Internet Explorer 7, Internet Explorer 8, Safari, Firefox и Chrome. jsonreport.js

jQuery.floatThead

. Подробнее о формате можно прочитать в . Вы можете воспользоваться тем фактом, что функции JS также являются объектами — что означает, что они могут есть свойства. Глядя на вывод

метод функционального программирования console.dir(). Например, console.log(util.inspect()). (Единственное отличие состоит в том, что она обходит любой пользовательский inspect() Об охвате браузера см.

Он использует Многие (не все) ответы здесь — это быстрые взломы, которые возможно, решил проблему, с которой столкнулся один человек, но будет работать не для каждого стола. , Трюк для использования статические переменные в javascript , , что дает такой же результат — за исключением того, что на этот раз увеличенное значение возвращается, а не отображается. и просто сделать вывод таким же красивым, каким он становится.

const object = JSON.parse(jsonString)

console.dir(object, {depth: null, colors: true})

и для командной строки:

cat package.json | node -e "process.stdin.pipe(new stream.Writable({write: chunk => console.dir(JSON.parse(chunk), {depth: null, colors: true})}))"

в строке — Атрибуты, Содержимое, вы называете это. Обратите внимание: для значений атрибутов необходимо использовать правильные кавычки.

описывает его лучше всего, поэтому я хотел бы поделиться им с вами.

JSON.stringify(jsonobj,null,'t')
var jsonObj = {"streetLabel": "Avenue Anatole France", "city": "Paris 07",  "postalCode": "75007", "countryCode": "FRA",  "countryLabel": "France" };

document.getElementById("result-before").innerHTML = JSON.stringify(jsonObj);

I. ключи должны быть доступны, <pre></pre>

document.getElementById("result-after").innerHTML = "<pre>" JSON.stringify(jsonObj,undefined, 2)  "</pre>"

Пример:

var jsonObj = {"streetLabel": "Avenue Anatole France", "city": "Paris 07",  "postalCode": "75007", "countryCode": "FRA",  "countryLabel": "France" };

document.getElementById("result-before").innerHTML = JSON.stringify(jsonObj);

document.getElementById("result-after").innerHTML = "<pre>" JSON.stringify(jsonObj,undefined, 2)  "</pre>"
div { float:left; clear:both; margin: 1em 0; }
<div id="result-before"></div>
<div id="result-after"></div>

Хорошие новости всем!

console.debug("%o", data);

Неудовлетворенный другими красивыми принтерами для Ruby, я написал свои собственные ( ОБНОВЛЕНИЕ NeatJSON ), а затем перенес его в JavaScript , включает другой файл, подобный этому: бесплатный онлайн-форматер . Код свободен под лицензией MIT ( вполне допустимо).

функции (все необязательные):

  • Установите ширину линии и перенос таким образом, чтобы объекты и массивы оставались на одной строке, когда они умещались, оборачивая по одному значению на строку, если их нет.
  • Сортируйте ключи объекта, если хотите.
  • Выровняйте ключи объекта (выровняйте двоеточия).
  • О вашем отредактированном первом примере (
  • Они используют явный произвольный алфавит (более общий и подходящий для исходного вопроса, который запрашивать как прописные, так и строчные буквы).
  • Детальный контроль над интервалом для массивов и объектов, между скобками, перед / после двоеточий и запятых.
  • Функция доступна как для веб-браузеров, так и для Node.js.

Я скопирую здесь исходный код, чтобы это была не просто ссылка на библиотеку, но я рекомендую вам перейти к Страница проекта GitHub , поскольку он будет обновляться, а приведенный ниже код — нет.

(function(exports){
exports.neatJSON = neatJSON;

function neatJSON(value,opts){
  opts = opts || {}
  if (!('wrap'          in opts)) opts.wrap = 80;
  if (opts.wrap==true) opts.wrap = -1;
  if (!('indent'        in opts)) opts.indent = '  ';
  if (!('arrayPadding'  in opts)) opts.arrayPadding  = ('padding' in opts) ? opts.padding : 0;
  if (!('objectPadding' in opts)) opts.objectPadding = ('padding' in opts) ? opts.padding : 0;
  if (!('afterComma'    in opts)) opts.afterComma    = ('aroundComma' in opts) ? opts.aroundComma : 0;
  if (!('beforeComma'   in opts)) opts.beforeComma   = ('aroundComma' in opts) ? opts.aroundComma : 0;
  if (!('afterColon'    in opts)) opts.afterColon    = ('aroundColon' in opts) ? opts.aroundColon : 0;
  if (!('beforeColon'   in opts)) opts.beforeColon   = ('aroundColon' in opts) ? opts.aroundColon : 0;

  var apad  = repeat(' ',opts.arrayPadding),
      opad  = repeat(' ',opts.objectPadding),
      comma = repeat(' ',opts.beforeComma) ',' repeat(' ',opts.afterComma),
      colon = repeat(' ',opts.beforeColon) ':' repeat(' ',opts.afterColon);

  return build(value,'');

  function build(o,indent){
    if (o===null || o===undefined) return indent 'null';
    else{
      switch(o.constructor){
        case Number:
          var isFloat = (o ===  o && o !== (o|0));
          return indent   ((isFloat && ('decimals' in opts)) ? o.toFixed(opts.decimals) : (o ''));

        case Array:
          var pieces  = o.map(function(v){ return build(v,'') });
          var oneLine = indent '[' apad pieces.join(comma) apad ']';
          if (opts.wrap===false || oneLine.length<=opts.wrap) return oneLine;
          if (opts.short){
            var indent2 = indent ' ' apad;
            pieces = o.map(function(v){ return build(v,indent2) });
            pieces[0] = pieces[0].replace(indent2,indent '[' apad);
            pieces[pieces.length-1] = pieces[pieces.length-1] apad ']';
            return pieces.join(',n');
          }else{
            var indent2 = indent opts.indent;
            return indent '[n' o.map(function(v){ return build(v,indent2) }).join(',n') 'n' indent ']';
          }

        case Object:
          var keyvals=[],i=0;
          for (var k in o) keyvals[i  ] = [JSON.stringify(k), build(o[k],'')];
          if (opts.sorted) keyvals = keyvals.sort(function(kv1,kv2){ kv1=kv1[0]; kv2=kv2[0]; return kv1<kv2?-1:kv1>kv2?1:0 });
          keyvals = keyvals.map(function(kv){ return kv.join(colon) }).join(comma);
          var oneLine = indent "{" opad keyvals opad "}";
          if (opts.wrap===false || oneLine.length<opts.wrap) return oneLine;
          if (opts.short){
            var keyvals=[],i=0;
            for (var k in o) keyvals[i  ] = [indent ' ' opad JSON.stringify(k),o[k]];
            if (opts.sorted) keyvals = keyvals.sort(function(kv1,kv2){ kv1=kv1[0]; kv2=kv2[0]; return kv1<kv2?-1:kv1>kv2?1:0 });
            keyvals[0][0] = keyvals[0][0].replace(indent ' ',indent '{');
            if (opts.aligned){
              var longest = 0;
              for (var i=keyvals.length;i--;) if (keyvals[i][0].length>longest) longest = keyvals[i][0].length;
              var padding = repeat(' ',longest);
              for (var i=keyvals.length;i--;) keyvals[i][0] = padRight(padding,keyvals[i][0]);
            }
            for (var i=keyvals.length;i--;){
              var k=keyvals[i][0], v=keyvals[i][1];
              var indent2 = repeat(' ',(k colon).length);
              var oneLine = k colon build(v,'');
              keyvals[i] = (opts.wrap===false || oneLine.length<=opts.wrap || !v || typeof v!="object") ? oneLine : (k colon build(v,indent2).replace(/^s /,''));
            }
            return keyvals.join(',n')   opad   '}';
          }else{
            var keyvals=[],i=0;
            for (var k in o) keyvals[i  ] = [indent opts.indent JSON.stringify(k),o[k]];
            if (opts.sorted) keyvals = keyvals.sort(function(kv1,kv2){ kv1=kv1[0]; kv2=kv2[0]; return kv1<kv2?-1:kv1>kv2?1:0 });
            if (opts.aligned){
              var longest = 0;
              for (var i=keyvals.length;i--;) if (keyvals[i][0].length>longest) longest = keyvals[i][0].length;
              var padding = repeat(' ',longest);
              for (var i=keyvals.length;i--;) keyvals[i][0] = padRight(padding,keyvals[i][0]);
            }
            var indent2 = indent opts.indent;
            for (var i=keyvals.length;i--;){
              var k=keyvals[i][0], v=keyvals[i][1];
              var oneLine = k colon build(v,'');
              keyvals[i] = (opts.wrap===false || oneLine.length<=opts.wrap || !v || typeof v!="object") ? oneLine : (k colon build(v,indent2).replace(/^s /,''));
            }
            return indent '{n' keyvals.join(',n') 'n' indent '}'
          }

        default:
          return indent JSON.stringify(o);
      }
    }
  }

  function repeat(str,times){ // http://stackoverflow.com/a/17800645/405017
    var result = '';
    while(true){
      if (times & 1) result  = str;
      times >>= 1;
      if (times) str  = str;
      else break;
    }
    return result;
  }
  function padRight(pad, str){
    return (str   pad).substring(0, pad.length);
  }
}
neatJSON.version = "0.5";

})(typeof exports === 'undefined' ? this : exports);

Вот удивительный HTML-код user123444555621, адаптированный для терминалов. Удобно для отладки скриптов Node:

function prettyJ(json) {
  if (typeof json !== 'string') {
    json = JSON.stringify(json, undefined, 2);
  }
  return json.replace(/("(\u[a-zA-Z0-9]{4}|\[^u]|[^\"])*"(s*:)?|b(true|false|null)b|-?d (?:.d*)?(?:[eE][ -]?d )?)/g, 
    function (match) {
      let cls = "x1b[36m";
      if (/^"/.test(match)) {
        if (/:$/.test(match)) {
          cls = "x1b[34m";
        } else {
          cls = "x1b[32m";
        }
      } else if (/true|false/.test(match)) {
        cls = "x1b[35m"; 
      } else if (/null/.test(match)) {
        cls = "x1b[31m";
      }
      return cls   match   "x1b[0m";
    }
  );
}

И функции очень просты:

// thing = any json OR string of json
prettyJ(thing);

Большое спасибо @all! Основываясь на предыдущих ответах, вот еще один вариант метода, предоставляющий пользовательские правила замены в качестве параметра:

 renderJSON : function(json, rr, code, pre){
   if (typeof json !== 'string') {
      json = JSON.stringify(json, undefined, 't');
   }
  var rules = {
   def : 'color:black;',    
   defKey : function(match){
             return '<strong>'   match   '</strong>';
          },
   types : [
       {
          name : 'True',
          regex : /true/,
          type : 'boolean',
          style : 'color:lightgreen;'
       },

       {
          name : 'False',
          regex : /false/,
          type : 'boolean',
          style : 'color:lightred;'
       },

       {
          name : 'Unicode',
          regex : /"(\u[a-zA-Z0-9]{4}|\[^u]|[^\"])*"(s*:)?/,
          type : 'string',
          style : 'color:green;'
       },

       {
          name : 'Null',
          regex : /null/,
          type : 'nil',
          style : 'color:magenta;'
       },

       {
          name : 'Number',
          regex : /-?d (?:.d*)?(?:[eE][ -]?d )?/,
          type : 'number',
          style : 'color:darkorange;'
       },

       {
          name : 'Whitespace',
          regex : /s /,
          type : 'whitespace',
          style : function(match){
             return '&nbsp';
          }
       } 

    ],

    keys : [
       {
           name : 'Testkey',
           regex : /("testkey")/,
           type : 'key',
           style : function(match){
             return '<h1>'   match   '</h1>';
          }
       }
    ],

    punctuation : {
          name : 'Punctuation',
          regex : /([,.}{[]])/,
          type : 'punctuation',
          style : function(match){
             return '<p>________</p>';
          }
       }

  };

  if('undefined' !== typeof jQuery){
     rules = $.extend(rules, ('object' === typeof rr) ? rr : {});  
  }else{
     for(var k in rr ){
        rules[k] = rr[k];
     }
  }
    var str = json.replace(/([,.}{[]]|"(\u[a-zA-Z0-9]{4}|\[^u]|[^\"])*"(s*:)?|b(true|false|null)b|-?d (?:.d*)?(?:[eE][ -]?d )?)/g, function (match) {
    var i = 0, p;
    if (rules.punctuation.regex.test(match)) {
               if('string' === typeof rules.punctuation.style){
                   return '<span style="'  rules.punctuation.style   '">'   match   '</span>';
               }else if('function' === typeof rules.punctuation.style){
                   return rules.punctuation.style(match);
               } else{
                  return match;
               }            
    }

    if (/^"/.test(match)) {
        if (/:$/.test(match)) {
            for(i=0;i<rules.keys.length;i  ){
            p = rules.keys[i];
            if (p.regex.test(match)) {
               if('string' === typeof p.style){
                   return '<span style="'  p.style   '">'   match   '</span>';
               }else if('function' === typeof p.style){
                   return p.style(match);
               } else{
                  return match;
               }                
             }              
           }   
            return ('function'===typeof rules.defKey) ? rules.defKey(match) : '<span style="'  rules.defKey   '">'   match   '</span>';            
        } else {
            return ('function'===typeof rules.def) ? rules.def(match) : '<span style="'  rules.def   '">'   match   '</span>';
        }
    } else {
        for(i=0;i<rules.types.length;i  ){
         p = rules.types[i];
         if (p.regex.test(match)) {
               if('string' === typeof p.style){
                   return '<span style="'  p.style   '">'   match   '</span>';
               }else if('function' === typeof p.style){
                   return p.style(match);
               } else{
                  return match;
               }                
          }             
        }

     }

    });

  if(true === pre)str = '<pre>'   str   '</pre>';
  if(true === code)str = '<code>'   str   '</code>';
  return str;
 }

JSON Дугласа Крокфорда в библиотеке JavaScript будет печатать JSON методом stringify.

Вы также можете найти полезные ответы на этот старый вопрос: Как я могу красиво напечатать JSON в (unix) сценарии оболочки?

Я столкнулся с проблемой сегодня с @ Pumbaa80 код. Я пытаюсь применить подсветку синтаксиса JSON к данным, которые я отображаю в Mithril , поэтому мне нужно создать DOM-узлы, так как все в JSON.stringify выход.

Я разделил действительно длинное регулярное выражение на его составные части, а также.

render_json = (data) ->
  # wraps JSON data in span elements so that syntax highlighting may be
  # applied. Should be placed in a `whitespace: pre` context
  if typeof(data) isnt 'string'
    data = JSON.stringify(data, undefined, 2)
  unicode =     /"(\u[a-zA-Z0-9]{4}|\[^u]|[^\"])*"(s*:)?/
  keyword =     /b(true|false|null)b/
  whitespace =  /s /
  punctuation = /[,.}{[]]/
  number =      /-?d (?:.d*)?(?:[eE][ -]?d )?/

  syntax = '('   [unicode, keyword, whitespace,
            punctuation, number].map((r) -> r.source).join('|')   ')'
  parser = new RegExp(syntax, 'g')

  nodes = data.match(parser) ? []
  select_class = (node) ->
    if punctuation.test(node)
      return 'punctuation'
    if /^s $/.test(node)
      return 'whitespace'
    if /^"/.test(node)
      if /:$/.test(node)
        return 'key'
      return 'string'

    if /true|false/.test(node)
      return 'boolean'

     if /null/.test(node)
       return 'null'
     return 'number'
  return nodes.map (node) ->
    cls = select_class(node)
    return Mithril('span', {class: cls}, node)

Код в контексте на Github говорится, что

Ключевое слово, предлагаю добавить следующее к функции

<textarea id='textarea'></textarea>

$("#textarea").append(formatJSON(JSON.stringify(jsonobject),true));

function formatJSON(json,textarea) {
    var nl;
    if(textarea) {
        nl = "
";
    } else {
        nl = "<br>";
    }
    var tab = "    ";
    var ret = "";
    var numquotes = 0;
    var betweenquotes = false;
    var firstquote = false;
    for (var i = 0; i < json.length; i  ) {
        var c = json[i];
        if(c == '"') {
            numquotes   ;
            if((numquotes   2) % 2 == 1) {
                betweenquotes = true;
            } else {
                betweenquotes = false;
            }
            if((numquotes   3) % 4 == 0) {
                firstquote = true;
            } else {
                firstquote = false;
            }
        }

        if(c == '[' && !betweenquotes) {
            ret  = c;
            ret  = nl;
            continue;
        }
        if(c == '{' && !betweenquotes) {
            ret  = tab;
            ret  = c;
            ret  = nl;
            continue;
        }
        if(c == '"' && firstquote) {
            ret  = tab   tab;
            ret  = c;
            continue;
        } else if (c == '"' && !firstquote) {
            ret  = c;
            continue;
        }
        if(c == ',' && !betweenquotes) {
            ret  = c;
            ret  = nl;
            continue;
        }
        if(c == '}' && !betweenquotes) {
            ret  = nl;
            ret  = tab;
            ret  = c;
            continue;
        }
        if(c == ']' && !betweenquotes) {
            ret  = nl;
            ret  = c;
            continue;
        }
        ret  = c;
    } // i loop
    return ret;
}

Вот простой компонент формата / цвета JSON, написанный на React:

const HighlightedJSON = ({ json }: Object) => {
  const highlightedJSON = jsonObj =>
    Object.keys(jsonObj).map(key => {
      const value = jsonObj[key];
      let valueType = typeof value;
      const isSimpleValue =
        ["string", "number", "boolean"].includes(valueType) || !value;
      if (isSimpleValue && valueType === "object") {
        valueType = "null";
      }
      return (
        <div key={key} className="line">
          <span className="key">{key}:</span>
          {isSimpleValue ? (
            <span className={valueType}>{`${value}`}</span>
          ) : (
            highlightedJSON(value)
          )}
        </div>
      );
    });
  return <div className="json">{highlightedJSON(json)}</div>;
};

Посмотрите, как это работает в этом CodePen: https://codepen.io/benshope/pen/BxVpjo

Надеюсь, это поможет!

, который вы можете использовать JSON.stringify(your object, null, 2) Второй параметр можно использовать в качестве функции заменителя, который принимает ключ и Val в качестве параметров. Это можно использовать в случае, если вы хотите что-то изменить в своем Объект JSON.

дополнительная ссылка: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

Совместимо со всеми популярными браузерами для настольных компьютеров, включая Internet Explorer вернуться к версии 8 HighlightJS . Он использует тот же принцип как принятый ответ, но работает также для много других языков и иметь множество предопределенных цветовых схем . Если вы используете способ !? LOL: P), тогда да, используйте что-то еще, чтобы быть в безопасности. Только идиот сказал бы, что никогда не должен использовать «eval», так как там , вы можете создать совместимый модуль с

python3 tools/build.py -tamd json xml <specify other language here>

Это не самый продвинутый распознаватель, но он дает представление о том, как вы можете использовать прокси-сервер для его обработки, если вы хотите использовать анализатор args для простого DI. Однако в этом подходе есть одна небольшая оговорка. Нам нужно использовать деструктурирующие назначения вместо обычных параметров. Когда мы передаем прокси инжектора, деструктурирование аналогично вызову геттера объекта. -n генерировать не минимизированную версию.

Это мило:

https://github.com/mafintosh/json-markup из mafintosh

const jsonMarkup = require('json-markup')
const html = jsonMarkup({hello:'world'})
document.querySelector('#myElem').innerHTML = html

является экземпляром

<link ref="stylesheet" href="style.css">
<div id="myElem></div>

Пример таблицы стилей можно найти здесь

https://raw.githubusercontent.com/mafintosh/json-markup/master/style.css

Сделайте так, чтобы ширина их ячеек снова соответствовала

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

из таблицы выше:

Если вы следовали приведенному выше объяснению, вы могли бы создать эту прокрутку

«особенность» JavaScript (как упомянуто в 6.) очень часто является причиной странных проблем в вашем коде. Следовательно, я бы скорее расценил это как ошибку, чем как особенность.

Также смотрите

Prism.highlightAll()

Предостережения

function pretty(ob, lvl = 0) {

  let temp = [];

  if(typeof ob === "object"){
    for(let x in ob) {
      if(ob.hasOwnProperty(x)) {
        temp.push( getTabs(lvl 1)   x   ":"   pretty(ob[x], lvl 1) );
      }
    }
    return "{n"  temp.join(",n")  "n"   getTabs(lvl)   "}";
  }
  else {
    return ob;
  }

}

function getTabs(n) {
  let c = 0, res = "";
  while(c   < n)
    res ="t";
  return res;
}

let obj = {a: {b: 2}, x: {y: 3}};
console.log(pretty(obj));

/*
  {
    a: {
      b: 2
    },
    x: {
      y: 3
    }
  }
*/

Этот плагин не работает с нижними колонтитулами, несколькими заголовками и т. Д.

console.log("data",data) // lets you unfold the object manually

Что такое Второй вариант требует еще один запрос полностью, так что вы можете присваивать значения всем нулям. Это и цикл foreach должны быть ДО вашего запроса, который выбирает значения.

var s = JSON.stringify(data,null,2) // format
var e = new Option(s).innerHTML // escape
document.body.insertAdjacentHTML('beforeend','<pre>' e '</pre>') // display

Не удалось найти ни одного решения с хорошей подсветкой синтаксиса для консоли, поэтому вот мой 2p

Установить {*. } amp ; Добавить зависимость подсветки клика

npm install cli-highlight --save

Определение logjson глобально

const highlight = require('cli-highlight').highlight
console.logjson = (obj) => console.log(
                               highlight( JSON.stringify(obj, null, 4), 
                                          { language: 'json', ignoreIllegals: true } ));

Использование

console.logjson({foo: "bar", someArray: ["string1", "string2"]});

output