I can extract the ID value, because it's enclosed in " ". I can't seem to extract the 'Temperature' value, it isn't enclosed in quotes...I get 'undefined' errors.
Question: how to handle the '21.6' value which is formatted differently to the other values...
How are you trying to access it? The fact it doesn't have quotes just means its value is a number rather than a string - it doesn't affect how to access it.
To get to the ID, you would use msg.payload["DS18B20-1"].Id.
Similarly, the Temperature is msg.payload["DS18B20-1"].Temperature.