Handling a JSON list of metrics in MQTT

Probably should read this whole topic to get a feel for what it can do:

Either. Given your format, I'd recommend a dataset, with dedicated columns for the possible datatypes. (Similar to IA's historian tables.)

Probably something like this in an expression tag (event triggered):

transform(
	jsonDecode({path/to/source/jsonAsString}),
	transform(
		doDate(value()['eventTime'],
		unionAll(
			asMap(
				'machineId', 'str',
				't_stamp', 'date',
				'varName', 'str',
				'varUnit', 'str',
				'boolValue', 'B',
				'longValue', 'L',
				'doubleValue', 'D'
			),
			forEach(
				value(1)['data'],
				value(1)['machineId'], // All rows get this ID
				value(), // All rows get the parsed event time
				it()['name'],
				it()['measurementUnit'],
				if(
					it()['dataType'] = 'boolean',
					toBoolean(it()['value']),
					null
				),
				if(
					it()['dataType'] = 'int' || it()['dataType'] = 'long',
					toLong(it()['value']),
					null
				),
				if(
					it()['dataType'] = 'float' || it()['dataType'] = 'double',
					toDouble(it()['value']),
					null
				)
			)
		)
	)
)