我正在使用bleno(节点js BLE包),它使用Buffer来发送和接收数据。我将如何获取Buffer对象并将其转换为JSON?这就是我现在所拥有的:
bufferToJson = buffer.toString();
bufferToJson = JSON.stringify(bufferToJson)
bufferToJson = JSON.parse(bufferToJson)
缓冲区是数据的位置。缓冲区的一个示例是{cmd:'echo'}
我尝试过bufferToJson.cmd
并且只能取消定义。感谢。
答案 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);