I have a buffer text Where I am getting from the SendGrid Inbound Parse webhook.
The Inbound Parse Webhook processes all incoming emails for a domain or subdomain, parses the contents and attachments then POSTs multipart/form-data to a URL that you choose.
The posted content is in buffer format like below
<Buffer 2d 2d 78 64 6b 69 ... >
Now I need to convert this into readable JSON format. When I tried to convert this buffer into JSON, I am getting the result like this.
var json = JSON.parse(buf);
{ type: 'Buffer', data: [ 97, 98, 99 ] }
I need to content like below example. That is the actula format.
When I tried to convert the buffer into string format, I am getting the result what I need. But, that in whole string format. I need it in JSON format. Because I need to some parameters for the responce like "From", "To" information. Is there any way to convert the buffer into readable JSON format.
Buffer -> String -> JSON
Could you please help me in converting the Buffer object to readable JSON object.
You can convert buffer text into JSON format in Node.js using Busboy. Below is an example of how to do it. You can get each field and value.
const Busboy = require("busboy");
exports.hello2 = functions.https.onRequest((req,res)=>{
res.header("Access-Control-Allow-Origin","*");
res.header("Access-Control-Allow-Headers","Origin,X-Requested-With,Content-Type,Accept");
const busboy = new Busboy({ headers: req.headers })
let Data = {}
console.log("Body",req.body);
console.log("rawBody",req.rawBody);
busboy.on("field", (field, val, fieldnameTruncated, valTruncated, encoding, mimetype) => {
console.log(`FieldName ${field}: ${val}.`)
Data[field] = val;
})
busboy.on('finish', () => {
console.log("Data",Data);
console.log("From",Data.from);
console.log("SPF",Data.SPF);
console.log("To",Data.to);
console.log("Subject",Data.subject);
res.status(200).send(Data);
});
busboy.end(req.body)
});