Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

org.webjars.npm:pretty-print-json

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

org.webjars.npm:pretty-print-json

WebJar for pretty-print-json

  • 3.0.3
  • Source
  • Maven
  • Socket score

Version published
Maintainers
1
Source

pretty-print-json

<img src=https://centerkey.com/graphics/center-key-logo.svg align=right width=200 alt=logo>

Pretty-print JSON data into HTML to indent and colorize

License:MIT npm Hits Build

Source is written in functional TypeScript, and pretty-print-json.min.js (minified) is 2.1 KB.

Screenshot

A) Try It Out

Interactive online tool to format JSON:
https://pretty-print-json.js.org

B) Setup

1. Web browser

Load from the jsdelivr.com CDN:

<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/pretty-print-json@3.0/dist/css/pretty-print-json.css>
...
<script src=https://cdn.jsdelivr.net/npm/pretty-print-json@3.0/dist/pretty-print-json.min.js></script>

The minified JS file is 2 KB.

For dark mode, replace pretty-print-json.css with pretty-print-json.dark-mode.css in the <link> tag.

Or to automatically sense dark mode based on the prefers-color-scheme CSS media feature, use pretty-print-json.prefers.css instead.

2. Node.js server

Install package for node:

$ npm install pretty-print-json

Import into your application:

import { prettyPrintJson } from 'pretty-print-json';

C) Usage

1. API

const html = prettyPrintJson.toHtml(data, options?);

2. Example

HTML:
<pre id=account class=json-container></pre>
JavaScript:

Pass data into prettyPrintJson.toHtml(data, options) and display the results.

const data = {
   active: true,
   mode:   '🚃',
   codes:  [48348, 28923, 39080],
   city:   'London',
   };
const elem = document.getElementById('account');
elem.innerHTML = prettyPrintJson.toHtml(data);

3. Options

Name (key)TypeDefaultDescription
indentinteger3Number of spaces for indentation.
lineNumbersbooleanfalseWrap HTML in an <ol> tag to support line numbers.*
linkUrlsbooleantrueCreate anchor tags for URLs.
linksNewTabbooleantrueAdd a target=_blank attribute setting to anchor tags.
quoteKeysbooleanfalseAlways double quote key names.
trailingCommasbooleantrueAppend a comma after the last item in arrays and objects.

*When setting lineNumbers to true, do not use the <pre> tag as the white-space: pre; styling is applied to each line (<li>).

Screenshot

D) TypeScript Declarations

See the TypeScript declarations at the top of the pretty-print-json.ts file.

Customize the output of the function prettyPrintJson.toHtml(data: unknown, options?: FormatOptions) using the options parameter.

The options parameter is a FormatOptions object:

type FormatOptions = {
   indent?:         number,   //number of spaces for indentation
   lineNumbers?:    boolean,  //wrap HTML in an <ol> tag to support line numbers
   linkUrls?:       boolean,  //create anchor tags for URLs
   linksNewTab?:    boolean,  //add a target=_blank attribute setting to anchor tags
   quoteKeys?:      boolean,  //always double quote key names
   trailingCommas?: boolean,  //append a comma after the last item in arrays and objects
   };

Example TypeScript usage with explicit types:

import { prettyPrintJson, FormatOptions } from 'pretty-print-json';

const data = {
   active: true,
   mode:   '🚃',
   codes:  [48348, 28923, 39080],
   city:   'London',
   };
const options: FormatOptions = { linkUrls: true };
const html: string = prettyPrintJson.toHtml(data, options);

E) Build Environment

Check out the runScriptsConfig section in package.json for an interesting approach to organizing build tasks.

CLI Build Tools for package.json

  • 🎋 add-dist-headerPrepend a one-line banner comment (with license notice) to distribution files
  • 📄 copy-file-utilCopy or rename a file with optional package version number
  • 📂 copy-folder-utilRecursively copy files from one folder to another folder
  • 🪺 recursive-execRun a command on each file in a folder and its subfolders
  • 🔍 replacer-utilFind and replace strings or template outputs in text files
  • 🔢 rev-web-assetsRevision web asset filenames with cache busting content hash fingerprints
  • 🚆 run-scripts-utilOrganize npm package.json scripts into groups of easy to manage commands
  • 🚦 w3c-html-validatorCheck the markup validity of HTML files using the W3C validator


To see some example HTML results, run npm install, npm test, and then node spec/examples.js.

Feel free to submit questions at:
github.com/center-key/pretty-print-json/issues

MIT License | Blog post

FAQs

Package last updated on 09 Oct 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc