# prettyjson

> Package for formatting JSON data in a coloured YAML-style, perfect for CLI output

Latest version **1.2.5** (published 2022-01-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install prettyjson
pnpm add prettyjson
yarn add prettyjson
bun add prettyjson
```

Provides the command `prettyjson`.

## Health

**Score 23/100 (F)** — status: abandoned.

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.5 |
| Published | 2022-01-11 |
| First published | 2011-10-10 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/prettyjson) |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 17 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 477 |
| Author | Rafael de Oleza |
| Maintainers | rafeca |
| Keywords | json, cli, formatting, colors |

## Links

- npm: https://www.npmjs.com/package/prettyjson
- Repository: https://github.com/rafeca/prettyjson
- Homepage: http://rafeca.com/prettyjson
- Issues: https://github.com/rafeca/prettyjson/issues
- npm.io page: https://npm.io/package/prettyjson

## Dependencies (2)

- [colors](https://npm.io/package/colors.md) 1.4.0
- [minimist](https://npm.io/package/minimist.md) ^1.2.0

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 1.2.5 (latest) — 2022-01-11
- 1.2.4 — 2022-01-10
- 1.2.3 — 2022-01-10
- 1.2.2 — 2022-01-10
- 1.2.1 — 2016-12-01
- 1.2.0 — 2016-11-20
- 1.1.3 — 2015-08-09
- 1.1.2 — 2015-05-21
- 1.1.1 — 2015-05-13
- 1.1.0 — 2015-02-04
- 1.0.0 — 2014-03-21
- 0.13.0 — 2014-03-08
- 0.12.1 — 2014-03-08
- 0.12.0 — 2014-02-11
- 0.11.1 — 2014-02-02
- … 20 more at https://npm.io/package/prettyjson/versions

## README

# prettyjson [![Build Status](https://travis-ci.org/rafeca/prettyjson.svg)](https://travis-ci.org/rafeca/prettyjson) [![NPM version](https://badge.fury.io/js/prettyjson.svg)](https://badge.fury.io/js/prettyjson) [![Coverage Status](https://coveralls.io/repos/github/rafeca/prettyjson/badge.svg?branch=master)](https://coveralls.io/github/rafeca/prettyjson?branch=master)

Package for formatting JSON data in a coloured YAML-style, perfect for CLI output.

## How to install

Just install it via NPM:

```bash
$ npm install -g prettyjson
```

This will install `prettyjson` globally, so it will be added automatically
to your `PATH`.

## Using it (from the CLI)

This package installs a command line interface to render JSON data in a more
convenient way. You can use the CLI in three different ways:

**Decode a JSON file:** If you want to see the contents of a JSON file, just pass
it as the first argument to the CLI:

```bash
$ prettyjson package.json
```

![Example 1](https://raw.github.com/rafeca/prettyjson/master/images/example3.png)

**Decode the stdin:** You can also pipe the result of a command (for example an
HTTP request) to the CLI to see the JSON result in a clearer way:

```bash
$ curl https://api.github.com/users/rafeca | prettyjson
```

![Example 2](https://raw.github.com/rafeca/prettyjson/master/images/example4.png)

**Decode random strings:** if you call the CLI with no arguments, you'll get a
prompt where you can past JSON strings and they'll be automatically displayed in a clearer way:

![Example 3](https://raw.github.com/rafeca/prettyjson/master/images/example5.png)

### Command line options

It's possible to customize the output through some command line options:

```bash
# Change colors
$ prettyjson --string=red --multiline_string=cyan --keys=blue --dash=yellow --number=green package.json

# Do not use colors
$ prettyjson --nocolor=1 package.json

# Change indentation
$ prettyjson --indent=4 package.json

# Render arrays elements in a single line
$ prettyjson --inline-arrays=1 package.json

# Escape conflictive strings
$ prettyjson --escape=1 package.json
```

**Deprecation Notice**: The old configuration through environment variables is
deprecated and it will be removed in the next major version (1.0.0).

## Using it (from Node.js)

It's pretty easy to use it. You just have to include it in your script and call
the `render()` method:

```javascript
var prettyjson = require('prettyjson');

var data = {
  username: 'rafeca',
  url: 'https://github.com/rafeca',
  twitter_account: 'https://twitter.com/rafeca',
  projects: ['prettyprint', 'connfu']
};

var options = {
  noColor: true
};

console.log(prettyjson.render(data, options));
```

And will output:

![Example 4](https://raw.github.com/rafeca/prettyjson/master/images/example1.png)

You can also configure the colors of the hash keys and array dashes
(using [colors.js](https://github.com/Marak/colors.js) colors syntax):

```javascript
var prettyjson = require('prettyjson');

var data = {
  username: 'rafeca',
  url: 'https://github.com/rafeca',
  twitter_account: 'https://twitter.com/rafeca',
  projects: ['prettyprint', 'connfu']
};

console.log(prettyjson.render(data, {
  keysColor: 'rainbow',
  dashColor: 'magenta',
  stringColor: 'white',
  multilineStringColor: 'cyan'
}));
```

Will output something like:

![Example 5](https://raw.github.com/rafeca/prettyjson/master/images/example2.png)

## Running Tests

To run the test suite first invoke the following command within the repo,
installing the development dependencies:

```bash
$ npm install
```

then run the tests:

```bash
$ npm test
```

On windows, you can run the tests with:

```cmd
C:\git\prettyjson> npm run-script testwin
```

---
_Source: https://npm.io/package/prettyjson · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
