Some more information on the issue, as I'm still unable to work around it.
This is what I'm sending (or trying to) via MQTT:
{"M001":{"timestamp":1499441290602,"reading":2000},
"M002":{"timestamp":1499441290602,"reading":3000}}
When the data point is configured as a JSON subscribe topic type, as below:

Mango throws an ERROR.
ERROR 2017-07-10T10:25:09,112 (com.infiniteautomation.m2m2.mqtt.client.MqttClien
tDataSourceRT.messageArrived:415) - Error during read topic: "test/array2" datap
oint: "RPi - M001_RPi" payload: "{"meterOne":{"timestamp":1499678815845,"reading
":2000},"M002":{"timestamp":1499678815845,"reading":3000}}" exception: "ERROR"
Help doesn't work to see how to configure the JSON subscriber :(

If the JSON value path is set to '$.M001', this is the error received:
ERROR 2017-07-10T10:43:04,379 (com.infiniteautomation.m2m2.mqtt.client.MqttClien
tDataSourceRT.messageArrived:415) - Error during read topic: "test/array2" datap
oint: "RPi - M001_RPi" payload: "{"M001":{"timestamp":1499679891268,"reading":20
00},"M002":{"timestamp":1499679891268,"reading":3000}}" exception: "com.serotoni
n.json.type.JsonObject cannot be cast to com.serotonin.json.type.JsonString"
If the data point is configured as 'Plain', then the terminal throws no errors and the message is sent to Mango. I'm trying to access the object named "M001" in different ways, as below:
<div layout="column" layout-fill flex>
<md-card flex>
<ma-get-point-value point-xid="RPi_M001_reading" point="array2"></ma-get-point-value>
<li> array2.value: {{array2.value}}</li>
<li>array2.value[1]: {{array2.value[1]}}</li>
<li>array2.value.M001: {{array2.value.M001}}</li>
<li>array2.value["M001"]: {{array2.value["M001"]}}</li>
<li>array2.value[M001]: {{array2.value[M001]}}</li>
</md-card>
</div>
And these are the results:

I can 'read' the whole string, but I can't individually access the object properties.
Can anyone offer any support please, as I'm running out of ideas?
Thanks in advance and have a great day :)