Truncate a JSON string
npm install @rebundled/truncate-json⚠️⚠️ This is a rebundled version of @rebundled/truncate-json! ⚠️⚠️







Truncate a JSON string.
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.
``js
import truncateJson from 'truncate-json'
// Object properties and array items beyond maxSize are omitted.`
const maxSize = 15
const jsonString = JSON.stringify({ a: 'one', b: 'two' })
console.log(jsonString)
// '{"a":"one","b":"two"}' (21 bytes)
console.log(truncateJson(jsonString, maxSize).jsonString)
// '{"a":"one"}' (11 bytes)
`js
// Works deeply inside objects and arrays
const jsonString = JSON.stringify([
'one',
{ a: 'two', b: { c: 'three', d: 'four' } },
'five',
])
console.log(jsonString)
// '["one",{"a":"two","b":{"c":"three","d":"four"}},"five"]' (55 bytes)
const returnValue = truncateJson(jsonString, 40)
console.log(returnValue.jsonString)
// '["one",{"a":"two","b":{"c":"three"}}]' (37 bytes)
// Omitted/truncated properties are returned
console.log(returnValue.truncatedProps)
// [
// { path: [ 1, 'b', 'd' ], value: 'four' },
// { path: [ 2 ], value: 'five' }
// ]
const isTruncated = returnValue.truncatedProps.length !== 0
console.log(isTruncated) // true
`
`js`
// Indentation is automatically detected and preserved
const jsonString = JSON.stringify({ a: 'one', b: 'two' }, undefined, 2)
console.log(jsonString)
// '{
// "a": "one",
// "b": "two"
// }' (30 bytes)
console.log(truncateJson(jsonString, 25).jsonString)
// '{
// "a": "one"
// }' (16 bytes)
`js`
// The top-level value can be any JSON type, not only objects or arrays
const jsonString = JSON.stringify('This is an example top-level string')
console.log(truncateJson(jsonString, 25).jsonString)
// '"This is an example t..."' (25 bytes)
`bash`
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.
jsonString string\maxSize number\object
_Return value_:
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.
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
Property path. This is an array of property keys and/or array indices.
##### truncatedProps[*].value
_Type_: JsonValue
Property value.
- is-json-value: Check if a value
is valid JSON
- safe-json-value: ⛑️ JSON
serialization should never fail
- guess-json-indent: Guess the
indentation of a JSON string
- string-byte-length: Get the
UTF-8 byte length of a string
- string-byte-slice: Like
string.slice() but bytewise
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.
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!