2013-02-03 27 views
0

我試圖把一個長值(毫秒)在JSONArray是這樣的:放久值在JSONArray

  long epoc = 1359231233L; 
     long milli = epoc*1000; 
     System.out.println(milli); 
     JSONArray arr = new JSONArray(); 
     arr.put((Long)epoc*1000); 
     System.out.println(arr.toString()); 

輸出是:

1359231233000 
[1.359231233e12] 

我不希望指數值在數組中,我怎麼能得到它顯示實際的長期價值?

+0

嘗試'arr.getLong(0)'。 – vikiiii

回答

3

我不想在數組中的指數值,我怎麼能得到它顯示實際的長期價值?

你看到的窗體不是在數組中。它由toString創建。數組中實際的值是一個Long,而不是一個字符串。

如果你想在沒有使用指數表示法的情況下獲得該數字的字符串形式,我希望你將不得不編寫自己的長串字符串例程(或者找到一個,也許在Apache公共版或類似的地方)。

注意,指數形式是完全可以接受JSON

+0

我的jquery Flot圖需要的時間以毫秒爲單位,似乎並不接受指數值。 –

+1

@MohammadAdil:那*很不幸。我想知道他們使用的是什麼JSON解析器。可能值得一個錯誤報告。 –

+2

@MohammadAdil:你確定*嗎?內置於Chrome,Firefox和IE9中的'JSON.parse'和Crockford的'json_parse'一樣:http://jsbin.com/ajunuh/1也許有一個*不同的問題? –

0

Long.toString()應該給你你想要的格式數量。

long epoc = 1359231233L; 
long milli = epoc*1000; 
System.out.println(milli); 
JSONArray arr = new JSONArray(); 
arr.put(Long.toString((Long)epoc*1000)); 
System.out.println(arr.toString()); 
+1

唯一的問題是:輸出數組有一個字符串現在 '[「1359231233000」]' –

+0

做jquery flot接受這個毫秒值 –

+0

@Mohammad Adil老實說,我不確定,你可以做一些預處理返回的數據在傳遞給flot之前? –