Package Exports
- guess-json-indent
Readme
Guess the indentation of a JSON string.
Example
import guessJsonIndent from 'guess-json-indent'
const input = [{ example: true }]
guessJsonIndent(JSON.stringify(input)) // undefined
guessJsonIndent(JSON.stringify(input, undefined, 1)) // 1
guessJsonIndent(JSON.stringify(input, undefined, 2)) // 2
guessJsonIndent(JSON.stringify(input, undefined, 4)) // 4
guessJsonIndent(JSON.stringify(input, undefined, '\t')) // '\t'
guessJsonIndent(JSON.stringify(input, undefined, '\t\t')) // '\t\t'
// Keep the indentation of a JSON string when parsing/serializing it
const jsonString = JSON.stringify(input, undefined, 2)
const indent = guessJsonIndent(jsonString)
const parsedValue = JSON.parse(jsonString)
console.log(JSON.stringify(input, undefined, indent)) // Same as jsonStringInstall
npm install guess-json-indentThis package is an ES module and must be loaded using
an import or import() statement,
not require().
API
guessJsonIndent(jsonString)
The return value is the same as the third argument to JSON.stringify():
undefined: none- integer: number of spaces
- string: tabs
Benchmarks
This library is very fast thanks to:
- Looking only at the first indented line, which is sufficient in the vast majority of real-life cases
- Being specific to JSON
The following benchmarks compares it:
- With
detect-indent,detect-json-indentanddetect-indentation - On a big JSON string (8MB)
guess-json-indent: 43ns
detect-json-indent: 60114470ns
detect-indentation: 141975495ns
detect-indent: 198161087nsRelated projects
truncate-json: Truncate a JSON stringis-json-value: Check if a value is valid JSONsafe-json-value: ⛑️ JSON serialization should never fail
Support
For any question, don't hesitate to submit an issue on GitHub.
Everyone is welcome regardless of personal background. We enforce a Code of conduct in order to promote a positive and inclusive environment.
Contributing
This project was made with ❤️. The simplest way to give back is by starring and sharing it online.
If the documentation is unclear or has a typo, please click on the page's Edit
button (pencil icon) and suggest a correction.
If you would like to help us fix a bug or add a new feature, please check our guidelines. Pull requests are welcome!