josn-cli v0.34.0
josn
josn-cli is a command-line JSON viewer, written in JavaScript and TypeScript.
I felt the need for a JSON browser when I was working on iaseth/top-100-yc-companies.
I primarily use it to verify the JSON data collected in my web scraping projects.
I have created a similar tool (jsonplus) in C++,
which is a lot more limited in functionality.
Four of my other projects, josnlib, whichtype,
jslice and jtransform,
actually started out as modules within josn,
but were later made separate packages to allow for easier testing and code reuse.
I am using readmix for generating this README.
You can view the source file here.
Table of contents
Installation
You can install josn-cli with the following command:
npm i -g josn-cliNow you should be able to run the josn command in your terminal.
Updating JOSN
You can update josn with the following command:
npm i -g josn-cli@latestUsage
Printing whole files
Provide the
filepathas the first argument.- This will print the whole file as indented JSON:
josn filename.json - When you supply a
paththat is a directory,josnwill automatically select thepackage.jsoninside that directory:
This is equivalent to writing:josn reactappjosn reactapp/package.json - When you supply a
paththat is a directory but it does not contain apackage.json,josnwill try to find ajsonfile in that directory:
If the directory contains a singlejosn mydata/JSONfile, thenjosnwill select it. Otherwise, it will list all theJSONfiles in that directory.
- This will print the whole file as indented JSON:
Printing an object
You can use the
keyNameto traverse inside an object.- This will print the
dependenciesobject insidepackage.json:josn package.json dependencies josnis case insensitive, so you might as well write this:josn package.json Dependencies- Or even this:
josn package.json DEPENDENCIES - And you can skip parts of the key name if it is unique enough:
This will print the firstjosn package.json depkeythat starts with the prefixdep. - You can use a
colonArgfor selecting just thekeysorvaluesin an object:josn package.json dependencies :keys
Both,josn package.json dependencies :values:keysand:valueshave a shorthand syntax:josn package.json dependencies :kjosn package.json dependencies :v
- This will print the
Printing an array element
You can use numbers to select array elements.
- This will print the first element of the data array:
josn data.json data 0 - You can also use negative indexes to select an element from the end:
This will print last element ofjosn data.json data -1dataarray. - You can use a
colonArgfor selecting just theevenoroddelements in an Array:josn data.json data :even
Keep in mind that array indexes start at 0, sojosn data.json data :odd:evenwill select elements at0, 2, 4, etcand vice-versa. - You can use a
colonArgfor slicing an Array:josn data.json data :10 // select first 10 elementsjosn data.json data -10: // select last 10 elements
The slice syntax is heavily inspired by its counterpart injosn data.json data 2:5 // select elements from 2 to 4Python.
- This will print the first element of the data array:
Demos
JOSN comes with a bunch of demo JSON files to get you started.
| Title | Name | Source | Description |
| ----- | ---- | ------ | ----------- |
| HTML Colors | colors.json | iaseth/html-color-names | |
| HTML Color Palettes | colorpalettes.json | iaseth/html-color-names | |
| YC Company Data | yc-companies.json | iaseth/top-100-yc-companies | |
| YC Color Palettes | yc-palettes.json | iaseth/top-100-yc-companies | |
| YC Tailwind Colors | yc-tailwind.json | iaseth/top-100-yc-companies | |
| Big Tech Market Cap Data | bigtech-market-cap.json | iaseth/bigtech-json-data | |
Use the following command to view the list of available demo JSON files in your josn installation:
josn --print-demosYou can open a demo file with the @demoname syntax:
josn @colors.json colors :10 --tableYou can omit the extension .json for demos:
josn @colors colors :10 --tableList of flags
| Short | Long | Description | Status |
|---|---|---|---|
| -c | --console | Use console.log() for printing selected object. | ✓ |
| -d | --dir | Use console.dir() for printing selected object. | ✓ |
| -D | --debug | Turns debug mode ON. | ✗ |
| -E | --exact | Turns exact mode ON. | ✗ |
| -F | --force | Force update files. | ✗ |
| -g | --green | Green is for the environment. | ✗ |
| -h | --help | Show help. | ✓ |
| -i | --ignore-case | Ignore case (default). | ✗ |
| --license | Print the LICENSE. | ✗ | |
| -l | --list | List all input files. | ✗ |
| -m | --minify | Minify the output. | ✓ |
| -n | --no-ignore-case | Do not ignore case. | ✗ |
| -p | --plaintext | Output plaintext. | ✗ |
| --print-args | Just print the arguments. | ✓ | |
| --print-demos | Just print the demos. | ✓ | |
| --print-flags | Just print the flags. | ✓ | |
| -q | --quiet | Turns quiet mode ON. | ✗ |
| --repl | Opens the REPL. | ✗ | |
| -s | --spaces2 | Indent with 2 spaces. | ✓ |
| -S | --spaces4 | Indent with 4 spaces. | ✓ |
| -t | --table | Print output as a table. | ✓ |
| -T | --tabs | Indent with Tabs. | ✓ |
| -v | --version | Print version. | ✓ |
| -w | --watch | Watch input files for changes. | ✗ |
| -x | --experimental | Turns experimental mode ON. | ✗ |
| -Z | --zen | Turns zen mode ON. | ✗ |
Package details
Name | Value |
|---|---|
Name | josn-cli |
Description | JOSN is a command line JSON viewer. |
Version | 0.34.0 |
Author | iaseth |
Homepage | https://github.com/iaseth/josn |
Repository | iaseth/josn |
License | MIT |
Dependencies | 1 |
Dependencies
Package | Version | |
|---|---|---|
| 1 | josnlib | ^0.18.0 |
Dev dependencies
Package | Version | |
|---|---|---|
| 1 | @types/jest | ^29.5.1 |
| 2 | jest | ^29.5.0 |
License
MIT License
Copyright (c) Ankur Seth.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Credit
This file was generated using readmix.
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago