A way to truncate a json object. Useful for circular referenced objects.
If you need to write data to a file or output an object to an api endpoint that has circular references I recommend you give json-truncate
a try.
By removing deeply nested data to maintain simple copies of the circular references you can keep most of the data you might be interested in.
npm install json-truncate --save
Below are examples of how to use json-truncate
You can include with regular node require:
JSON.truncate = require('json-truncate')
Figure 1.0 - A basic example with default options.
JSON.truncate(SomeDeepObject)
Figure 1.1 - An example of setting the maxDepth
property.
JSON.truncate(SomeDeepObject, 5)
Figure 1.2 - An example of all configurable options.
console.log(JSON.truncate({
data: 'foo',
level1: {
data: 'bar',
level2: {
level3: {}
}
}
}, {
maxDepth: 2,
replace: '[Truncated]'
}))
/**
* Output:
{
"data": "foo",
"level1": {
"data": "bar",
"level2": "[Truncated]"
}
}
**/
By default, there are two configurable variables to keep in mind when using json-truncate
:
maxDepth (Number)
=10
replace (Any)
=undefined
If you would you can configure these either individually with each request, or globally with the configuration function. The following example mimics figure 1.2 above.
JSON.truncate.configure({
maxDepth: 2,
replace: '[Truncated]'
})
obj
- The Object that will be truncated.options
- (optional) An option object to customize the behavior of the utility. Defaults to{}
.
Current Option Properties
Option | Description |
---|---|
maxDepth | The default maxDepth to use for nested and deep properties on an object. Defaults to 10 |
:-- | :-- |
replace | A string value that is used to replace all truncated values. If this value is not a string then all truncated values will be replaced with undefined |
MIT