JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 16298
  • Score
    100M100P100Q135616F
  • License Apache-2.0

Truncate a JSON string

Package Exports

  • truncate-json

Readme

Codecov Node TypeScript Twitter Medium

Truncate a JSON string.

Examples

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)
// 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
// 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)
// 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)

Install

npm install truncate-json

This package is an ES module and must be loaded using an import or import() statement, not require().

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!