从Buffer到JSON的Javascript

时间:2016-10-19 00:39:00

标签: javascript json node.js buffer

我正在使用bleno(节点js BLE包),它使用Buffer来发送和接收数据。我将如何获取Buffer对象并将其转换为JSON?这就是我现在所拥有的:

bufferToJson = buffer.toString();
bufferToJson = JSON.stringify(bufferToJson)
bufferToJson = JSON.parse(bufferToJson)

缓冲区是数据的位置。缓冲区的一个示例是{cmd:'echo'}我尝试过bufferToJson.cmd并且只能取消定义。感谢。

4 个答案:

答案 0 :(得分:3)

如果您的缓冲区对象包含JSON的有效表示,那么转换它的最简单方法就是这样:

let json = JSON.parse(buffer);

答案 1 :(得分:2)

以下应该工作:

var bufferToJson = JSON.parse(myBuffer.toString());

答案 2 :(得分:1)

您可以使用TextDecoder,如下面的片段:

const buffer = await characteristic.readValue();
const decoder = new TextDecoder('utf8');
const text = decoder.decode(buffer);
console.log(JSON.parse(text));

答案 3 :(得分:0)

对于nodejs应用程序,我发现String Decoder效果很好。

https://nodejs.org/api/string_decoder.html

// API for decoding Buffer objects into strings
const { StringDecoder } = require('string_decoder');
const decoder = new StringDecoder('utf8');

let body = Buffer.from(response.body);
let json = decoder.write(body);
let foo  = JSON.parse(json);