In my application I get some JSON as an
std::string that is parsed using the
juce::JSON::parse() functionality. Inside the JSON to be parsed I have maximum positive and negative double values (
1.79769e+308). These values are not parsed to actually be the maximum double value, but rather they become
-inf, thus the output JSON is actually invalid (
-inf are not valid numbers in JSON).
The place where the maximum double values become
inf is in
CharacterFunctions::readDoubleValue all the way at the end:
if (decPointIndex != 0) r += mulexp10 (result, exponent - exponentAdjustment);
At this point a small epsilon will be added to the maximum double value and is then tipped over to
Is this the desired behavior? I guess for some parsing it makes sense to return
inf, but for JSON it is wrong. Is there a workaround for this?