package.examples.stringify.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of traverse Show documentation
Show all versions of traverse Show documentation
traverse and transform objects by visiting every node on a recursive walk
The newest version!
#!/usr/bin/env node
'use strict';
var traverse = require('traverse');
var obj = ['five', 6, -3, [7, 8, -2, 1], { f: 10, g: -13 }];
var s = '';
traverse(obj).forEach(function toS(node) {
if (Array.isArray(node)) {
this.before(function () { s += '['; });
this.post(function (child) {
if (!child.isLast) { s += ','; }
});
this.after(function () { s += ']'; });
} else if (typeof node === 'object') {
this.before(function () { s += '{'; });
this.pre(function (x, key) {
toS(key);
s += ':';
});
this.post(function (child) {
if (!child.isLast) { s += ','; }
});
this.after(function () { s += '}'; });
} else if (typeof node === 'string') {
s += '"' + node.toString().replace(/"/g, '\\"') + '"';
} else if (typeof node === 'function') {
s += 'null';
} else {
s += node.toString();
}
});
console.log('JSON.stringify: ' + JSON.stringify(obj));
console.log('this stringify: ' + s);