Answering my own question here:
Looks like JsonResource has a resolve method. So this returns it as a flat array as I was expecting:
$product = Member::find(1234)->products(2)->first();
$resourceresult = new ProductResource($product);
$resourceresult->resolve();
...gives me this:
{
"id": 2,
"name": "Artificial Grass",
"pivotval1": "Pivot Value 1",
"pivotval2": 5000
}
Note though that using the following DOESN'T work for me for some reason, it has to be applied after the Resource is generated:
$resourceresult = new ProductResource($product)->resolve();
If anyone has a better way to do this, or want's to tell me why I'm terrible at PHP, I'm still all ears! Thanks.