Field type that is an integer, but accept some strings that means no value is provided?
If you have only one possible non-integer value, leave it as integer, just make it optional (not required). As far as I understand Feeds JSONPath Parser, non-integer value will simply get omitted, giving you no value for this field - exactly consistent as in fact you don't have that price.

Then in your template files check if it's set. If it isn't, show "on demand" string, with a link to make a demand or, well, anything you need.