我正在使用Mongo DB,在saveData方法中我正在尝试保存数据对象 在Mongo DB上。首先,我以JSON格式转换数据对象,然后保存 Mongo DB上的对象。但是有一个问题。我的类对象有一个属性initialDate 日期类型,但是当此代码将对象保存在Mongo上时,initialDate属性将保存为字符串, 但我需要它以日期格式保存。有人可以帮帮我吗?
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 :(得分:1)
date
在toString
上jsonObject
时,date
正在转换为字符串。执行JSON.parse
-
DBObject dbObject = (DBObject) JSON.parse(dataJson);
// TODO: Convert dbObject's initialDate property back to date type here
DBCollection table = mongoDB.getCollection(data
.getModel().getProjectName());
类型
$ sed -E 's/([^;]*);([^;]*);([^;]*);/\1\2\3/' infile
38528;9;5;8;6
7456;2;2;4;6
答案 1 :(得分:1)
将对象转换为JSON会将日期转换为字符串,因为JSON没有日期类型。
您可以手动设置initialDate
中的dbObject
,如此
dbObject.put("initialDate", data.getInitialDate());
这应该将日期保存为日期。
更好的解决方案是使用库在java类和json之间进行映射,如此处所述https://stackoverflow.com/a/7684293/965322