
Truncate a JSON string.
Hire me
Please
reach out
if you're looking for a Node.js API or CLI engineer (10 years of experience).
Most recently I have been Netlify Build's
and Netlify Plugins'
technical lead for 2.5 years. I am available for full-time remote positions in
either US or EU time zones.
Examples
import truncateJson from 'truncate-json'
const maxSize = 15
const jsonString = JSON.stringify({ a: 'one', b: 'two' })
console.log(jsonString)
console.log(truncateJson(jsonString, maxSize).jsonString)
const jsonString = JSON.stringify([
'one',
{ a: 'two', b: { c: 'three', d: 'four' } },
'five',
])
console.log(jsonString)
const returnValue = truncateJson(jsonString, 40)
console.log(returnValue.jsonString)
console.log(returnValue.truncatedProps)
const isTruncated = returnValue.truncatedProps.length !== 0
console.log(isTruncated)
const jsonString = JSON.stringify({ a: 'one', b: 'two' }, undefined, 2)
console.log(jsonString)
console.log(truncateJson(jsonString, 25).jsonString)
const jsonString = JSON.stringify('This is an example top-level string')
console.log(truncateJson(jsonString, 25).jsonString)
Install
npm install truncate-json
This package works in both Node.js >=14.18.0 and
browsers.
This is an ES module. It must be loaded using
an import
or import()
statement,
not require()
. If TypeScript is used, it must be configured to
output ES modules,
not CommonJS.
API
truncateJson(jsonString, maxSize)
jsonString
string
maxSize
number
Return value: object
Truncates a JSON string to maxSize
bytes.
Any object property or array item beyond the maxSize
limit is completely
omitted. Strings are not truncated, except when at the top-level.
Return value
The return value is an object with the following properties.
jsonString
Type: string
jsonString
after truncation has been applied.
truncatedProps
Type: object[]
List of properties having been truncated/omitted.
truncatedProps[*].path
Type: Array<string | number>
Property path. This is an array of property keys and/or array indices.
truncatedProps[*].value
Type: JsonValue
Property value.
Related projects
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!