Warning about JSON_NUMERIC_CHECK and scientific notation.
JSON_NUMERIC_CHECK will remove scientific notation. Thus,
json_encode(['scientificNumber' => '1e-4'], JSON_NUMERIC_CHECK);
will return {"scientificNumber":0.0001}
You have to account for this, as it may defeat the whole purpose of scientific notation.