我正在编写一个程序来将包含纪元时间的JSON内容转换为XML格式的一个属性并将其存储在一个字符串中。对于纪元时间的JSONObject xml转换错误
下面是代码
String data = "{\"result\":\"pass\", \"timestamp\":1497870880.0396869183}";
JSONObject json = new JSONObject(data); //the json object contains proper epoch value after this line
String event = XML.toString(json);
当我打印字符串事件的内容,我得到
<result>pass</result><timestamp>1.497870880039687E9</timestamp>
时间戳的值被改变。
但是,如果JSON内容具有划时代时间戳作为字符串,如
String data = "{\"result\":\"pass\", \"timestamp\":"1497870880.0396869183"}";
然后将生成的事件串给出正确的结果
<result>pass</result><timestamp>1497870880.0396869183</timestamp>
可有人请解释为什么发生这种情况? JSON XML API对LONG值不友好吗? 注意:输入的JSON内容将包含具有字符串值和纪元时间的多个属性。
它并不完全改变价值。它正在变为科学计数法 –
在XML之前打印出JSONObject。问题可能是json库 –
json对象具有正确和准确的epoch值和精确的内容作为json内容。问题发生在toString()调用之后。 –