I use the Tile map editor to create my shapes, and when importing to phaser I use the shapes to create bodies using the matter.bodies.rectangle/circle/polygon methods.
Example for rectangle
let newBody = matter.bodies.rectangle(
x,
y,
width,
height,
{
isStatic: false,
isSensor: false
}
);
matterGameObject.setExistingBody(newBody, true);
Do not know if there is a builtin way to use the json directly, but you can create a method that takes the json data you want to make the new body and assign it like shown in the example. Then a callback or other type of check to know when to use what body for what frame.