If the http input knows from the content-type that the input body is json then it will automagically parse the JSON, so you will not have a [message] field. The default codec on the kafka output is plain, and what you are seeing there is the default format (since you do not have a [message] field the sprintf reference to it does not get substituted).
You need to either force the codec on the input so that it does not parse the JSON, or add a codec to the output. json_lines might work.