JavaでJSONシリアライズされた日付情報をjsで取得する
JavaでJSONシリアライズされた日付情報をjsで取得するとき、どのようなことが必要か確認しました。
Javaのjava.util.DateクラスもJavaScriptのDateコンストラクタから生成されたオブジェクトも1、970年1月1日0時0分0秒からのミリ秒で日付を管理してます。
Date型のプロパティを持つSlim3のモデルをjson-libでシリアライズすると、Dateもjsonに展開され、timeプロパティでミリ秒を取得できます。これをjs側でDateコンストラクタの引数に渡せばよさそうです。
JSONを返すSlim3のコントローラ
public class IndexController extends Controller { @Override protected Navigation run() throws Exception { Slim3Model model2 = new Slim3Model(); model2.setDate(new Date()); JSON json = JSONSerializer.toJSON(model2); response.setCharacterEncoding("UTF-8"); json.write(response.getWriter()); response.flushBuffer(); return null; } }
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script type="text/javascript"> alert("hoge"); $.getJSON("./index", function(data){ alert(new Date(data.date.time).toLocaleString()) }); </script>
上記を実行すると、アラートで実行した時刻のJST表現が取得できました。