The data can be written to blob storage in either the Apache Avro format, which is the default, or JSON (preview).
In order for IoT Hub to know whether the message can be routed based on its body contents, the message must contain specific headers which describe the content and encoding of its body.
In particular, messages must have both these headers for routing on message body to work:
Content type of "application/json" Content encoding must match one of: "utf-8" "utf-16" "utf-32"
Set message body type and content encoding. message.ContentEncoding = "utf-8"; message.ContentType = "application/json";
contentType="application/json"
contentEncoding=" UTF-8"
if yes, then the body should be in the json formatted text:
{"messageId":0,"temperature":24,"humidity":64}
For more details, refer Message routing query based on message properties
Also, note that the capability to encode JSON format is in preview in all regions in which IoT Hub is available, except East US, West US and West Europe. The encoding format can be only set at the time the blob storage endpoint is configured. The format cannot be changed for an endpoint that has already been set up. When using JSON encoding, you must set the contentType to JSON and the contentEncoding to UTF-8 in the message system properties.
For more detailed information about using a blob storage endpoint, please see guidance on routing to storage.
Source: MSDN