Shouldn't you be able to ask it via payload.Value<>? Why do you have to iterate over it?