Your 'double' values contain the letter E, which is valid double syntax IF the parser recognized hexadecimal, which JSONArray
probably does. E
means in the floating point world as times 10 to the power of
numbers1[E/e]numbers2
is parsed as:
numbers1 * (10 ^ numbers2)
, or
numbers1 times 10 to the power of numbers2
Where numbers[1/2] represent any combination of hexadecimal digits. Sooo....
047c04fae63684
is the same as
047c04fa * (10 ^ 64684)
and double does not have enough data space to hold that exponent, so it overflows and returns Infinity
.
Meanwhile the JSONArray
parser has no clue what to with "[04b2b6f2443680]"
, so im geussing it assumes that because it contains non digits, that it must be a string and it returns it as a String
.
For "[\"049360FAE63680\"]"
you enclosed the array value in quotes so the parser automatically sees them and says 'Hey, thats a string, lets just return that' and doesn't do anything else.
Sorry if the data is inaccurate, I have a bad head cold.