2016-11-02 5 views
0

私はJavaコードからjsonファイルにデータを格納するためにJSONObjectライブラリを使用しています。私はJSONObjectについて次のようにtutorialを見つけました。私が理解しようとしているのは、Json階層がどのように機能するかです。基本的に私はすべてのXとYのマウスイベントと対応するタイムスタンプをjsonファイルに保存したいと思います。私は、次のコードを持っている:情報をJavaのJsonファイルに格納

Jobj = new JSONObject(); 
Jobj.put("user interactions", "Learning game applications"); 
EventHandler<MouseEvent> handler = event -> { 
     event.getSceneX(); 
     event.getSceneY(); 
     java.util.Date date = new java.util.Date(); 

     JSONArray list = new JSONArray(); 
     list.add(new Timestamp(date.getTime())); 
     list.add(event.getSceneX()); 
     list.add(event.getSceneY()); 
     Jobj.put("Mouse Events", list); 

    }; 

私は私が得たファイルに、このJSONオブジェクトだけで唯一の(X、Y、時間)を格納しようとしています。どのように私はそれらのすべてを得ることができますか?

{ "マウスイベント":[2016年11月2日14:49:07.1,457.0,642.0]、 "ユーザ対話": "学習ゲームアプリケーション"}

答えて

2

あなたが格納されていますオブジェクト「マウスイベント」内の配列。 行になるたびに

Jobj.put("Mouse Events", list); 

が上書きされます。 アレイ "マウスイベント"を持ち、すべてのイベントでアレイに新しいアレイを追加します。

値をJSONArrayとして取得し、取得した配列に新しいJSONArrayを追加してから、Jobjに再度格納します。

+0

私はすべてのイベントティック((X、Y、時間)を保存する必要があります。だから私は2次元の配列が欲しいのですか? –

+0

配列の配列です。イベントが発生するたびに1つの配列を追加します。 – neuhaus

+0

キー "x"、 "y"、 "timestamp"を使用してイベントごとにオブジェクトを作成し、そのイベントが発生するたびにオブジェクトを配列 "Mouse events"に追加する方が簡単かもしれません。 – neuhaus

関連する問題