我正在使用node.js进行编码,并使用tshark的子进程,并使我的程序将所有tshark输出作为事件读取。
我注意到,当我将tshark设置为以JSON输出时,它在JSON对象中输出了非常有条理的信息,但是我无法指向其中的任何对象。
使用JSON.stringify(data)返回一堆数字。有谁知道我如何在stdout中可靠地指向一个对象?
var spawn = require('child_process').spawn,
ts = spawn('tshark',
['-i', '1', '-T', 'JSON', '-V']
);
ts.stdout.on('data', function (data) {
console.log('stdout: ' + data); // cannot point to objects here
});
ts.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
ts.on('exit', function (code) {
console.log('child process exited with code ' + code);
});
每个收到的数据包都将具有_source
属性,即使使用data._source
我也无法指向它,它返回undefined。不太确定如何指向对象内的属性。
编辑:所以我知道了。它实际上是一个缓冲区,所以我将其转换为字符串,然后将其解析为可用的对象。