ValRus is correct; you need the substring(0, str.length-1) to remove the last char.
let str = reading.toString('utf8');
console.log( "String = %s", str );
let obj = JSON.parse( str.substring(0, str.length-1) );
let str2 = JSON.stringify(obj, null, 4); // Reverse conversion
console.log("Obj = %s", str2); // and output to inspect
This is the code I needed to pull JSON out of an MQTT message buffer.
(And this would have been sooooo much easier to debug in Java or C - good Lord is Javascript a pain!)