You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tson/README.md

116 lines
2.6 KiB
Markdown

5 years ago
# tson
5 years ago
`tson` is JSON viewer and editor written in Go.
5 years ago
This tool displays JSON as a tree and you can search and edit key or values.
5 years ago
![](https://i.imgur.com/pWVVfd6.gif)
5 years ago
5 years ago
## Support OS
- Mac
- Linux
## Installation
5 years ago
```sh
$ git clone https://github.com/skanehira/tson
$ cd tson && go install
5 years ago
```
## Usage
```sh
5 years ago
# from file
5 years ago
$ tson < test.json
5 years ago
5 years ago
# from pipe
$ curl -X POST http://gorilla/likes/regist | tson
# from url(only can use http get mthod)
5 years ago
$ tson -url http://gorilla/likes/json
5 years ago
```
## Keybinding
### JSON tree
5 years ago
| key | description |
|--------|----------------------|
| j | move down |
| k | move up |
| g | move to the top |
| G | move to the bottom |
| ctrl-f | page up |
| ctrl-b | page down |
| h | hide current node |
| H | collaspe all nodes |
| l | expand current node |
| L | expand all nodes |
| r | read from file |
| s | save to file |
| a | add new node |
| A | add new value |
| d | clear children nodes |
| Enter | edit node |
| / | search nodes |
5 years ago
| ? | show keybindings |
5 years ago
5 years ago
## About editing nodes
When editing a node value, the JSON value type is determined based on the value.
For example, after inputed `10.5` and saving the JSON to a file, it will be output as a float type `10.5`.
If the value sorround with `"`, it will be output as string type always.
The following is a list of conversion rules.
| input value | json type |
|--------------------|-----------|
| `gorilla` | string |
| `10.5` | float |
| `5` | int |
| `true` or `false` | boolean |
| `null` | null |
| `"10"` or `"true"` | string |
## About adding new node
You can use `a` to add new node with raw json string.
For expample, you have following tree.
```
{array} <- your cursor in there
├──a
├──b
└──c
```
If you input `{"name":"gorilla"}` and press add button,
then you will get new tree as following.
```
{array} <- your cursor in there
├──a
├──b
├──c
└──{object}
└──name
└──gorilla
```
Also, You can use `A` to add new value to current node.
For example, you have following tree.
```
{object} <- your cursor in there
└──name
└──gorilla
```
If you input `{"age": 26}` and press add button,
then you will get new tree as following.
```
{object} <- your cursor in there
├──name
│ └──gorilla
└──age
└──26
```
5 years ago
# Author
skanehira