private def writeData(measure: DBCollection, installation: Int, date: String, dates: ListBuffer[LocalDate],
values: ListBuffer[BigDecimal], validated: Boolean, overwrite: Boolean) {
val timeValues: BasicDBList = new BasicDBList
var i = 0
while ( i < dates.size ) {
val obj: BasicDBObject = new BasicDBObject("time", dates(i))
obj.put("value", values(i).toString())
timeValues.add(obj)
i += 1
}
if ( debug ) System.out.println("Storedata: " + timeValues.toString) <-- error here
java.lang.runtimeException:json无法序列化类型:在com.mongodb.util.ClassMapBasedObjectSerializer.serializer(ClassMapBasedObjectSerializer.java:77)在com.mongodb.util.ClassMapBasedObjectSerializer.serializer(jsonSerializers.java:317)在)在com.mongodb.util.classmapbasedObjectSerializer.serialize(classmapbasedObjectSerializer.java:79)在com.mongodb.util.json.serialize(json.java:54)在com.mongodb.util.json.serialize(json.java:40)在com.mongodb.util.json.serialize(json.java:40)在位于sun.reflect.n的VemethodAccessorImpl.Invoke0(本机方法)在sun.reflect.delegatingMethodAccessorImpl.invoke(nativeMethodAccessorImpl.java:62),java.lang.reflect.method.invoke(method.java:43),com.intellij.rt.execution.application.appmain.main(appmain.java:134),java.lang.reflect.method.invoke(method.java:483)
我使用的是mongo-java-driver-2.13.0-rc1.jar Scala 2.11.4和java 1.8.0_25
为了完整性。
不幸的是,MongoDB驱动程序使用java.util.date
类型,请参见此处的文档
因此,必须首先将LocalDate转换为Date实例,例如:
MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("test");
DBCollection coll = db.getCollection("testcol");
LocalDate ld = LocalDate.now();
Instant instant = ld.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
BasicDBObject doc = new BasicDBObject("localdate", date);
coll.insert(doc);
不过,我建议使用Morphia或Jongo之类的东西来包装MongoDB驱动程序,因为您可以注册全局映射器来动态隐式地执行这些转换,这样您就可以在域模型中使用LocalDate等
问题内容: 我正在使用Java 8 java.time.LocalDate来解析日期。 但是尝试将LocalDate对象插入到mongodb中。我在Java驱动程序中收到错误: 错误日志: java.lang.RuntimeException:json无法序列化类型:com.mongodb.util.JSONSerializers $ MapSerializer.serialize(JSONSer
问题内容: 我试图序列化和反序列化内部对象的数组列表: HairList对象也是一个可序列化的对象。 此代码执行返回以下错误: 排队 我不知道我在做什么错。你能给个小费吗? 更新: 解决: 仅使用HairBirt的本机数组而不是ArrayList即可工作: 代替 感谢大家的帮助。 问题答案: 不要使用-而是使用二进制数据并对它进行base64编码,以将其转换为字符串而不会丢失信息。 我强烈怀疑这是
问题内容: 我正在使用python包pymongo从mongodb数据库中检索数据。 然后我转换为列表 这是print(l)返回的内容: 现在,我需要转换为JSON,以便可以对其进行操作。 我还尝试遵循 http://api.mongodb.org/python/1.7/api/pymongo/json_util.html 失败:编辑:链接的最新版本为http://api.mongodb.org/
我试图反序列化javax.ws.rs.core.MultiValuedHashMap。 MultivaluedHashMap实现java.io.Serializable,并且有一个公共的、没有arg构造函数。 提前感谢你的帮助。
我从 REST API 获得以下 JSON 作为响应。 并尝试使用下面的代码进行解析,但这不会导致正确的反序列化类型。 下面是我在JSON响应中收到的字段的类。 缺少了什么?
我正试图将流数据从Kafka保存到卡桑德拉。我能够读取和解析数据,但是当我调用下面的行来保存数据时,我会得到一个异常。我的类正在扩展序列化,但不确定为什么我会看到这个错误,在谷歌搜索了3个小时后没有得到多少帮助,有没有人能给出任何指示? 我得到了 sparkException:任务不可序列化 下面是完整的日志 16/08/06 10:24:52错误JobScheduler:运行作业流作业14705