2017-05-19 16 views
0

Mongo DBを使用しています。saveDataメソッドでデータオブジェクト をMongo DBに保存しようとしています。まず、データオブジェクトをJSON形式で変換してから、 オブジェクトをMongo DBに保存した後です。しかし問題があります。 My Classオブジェクトには Date型のatribute initialDateがありますが、このコードでMongoにオブジェクトを保存すると、initialDate属性は文字列として に保存されますが、日付形式で保存する必要があります。誰かが私を助けることができますか?MongoDBに日付形式のjson dateフィールドを保存します

ここ
public void saveData(ClassObject data) { 
    JSONObject jsonObject = new JSONObject(data); 
    String dataJson = jsonObject.toString(); 
    DBObject dbObject = (DBObject) JSON.parse(dataJson); 
    DBCollection table = mongoDB.getCollection(data 
      .getModel().getProjectName()); 
    table.insert(dbObject); 
} 

ClassObject

Class ClassObject { 

private int value; 
private ParentModel model; 
private Date initialDate; 

... 
//here get and setters 
} 

答えて

0

jsonObjecttoStringをしている間あなたのdateが文字列に変換しつつあります。 JSONは、日付の種類を持っていないとしてJSONにオブジェクトを変換すると、文字列に日付を

DBObject dbObject = (DBObject) JSON.parse(dataJson); 

// TODO: Convert dbObject's initialDate property back to date type here 

DBCollection table = mongoDB.getCollection(data 
     .getModel().getProjectName()); 
0

変換します - あなたはJSON.parseん後に戻っdate型に変換する必要があります。

は手動ので

dbObject.put("initialDate", data.getInitialDate()); 

ようdbObjectinitialDateを設定することができ、これは日付として日付を保存する必要があります。

もっと良い解決策は、ここで説明するように、Javaクラスとjsonをマッピングするライブラリを使用することです。https://stackoverflow.com/a/7684293/965322

関連する問題