【问题标题】:Can't find a codec for class com.mongodb.client.model.geojson.Point找不到类 com.mongodb.client.model.geojson.Point 的编解码器
【发布时间】:2019-04-07 12:33:13
【问题描述】:

以下抛出 org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class com.mongodb.client.model.geojson.Point.

import com.mongodb.client.model.geojson.Point;
import com.mongodb.client.model.geojson.Position;

@Test
public void test() throws Exception{
    BasicDBObject dbo = new BasicDBObject();
    dbo.put("name", "some-name");
    dbo.put("location", new Point(new Position(100, 200)));
    System.out.println(dbo.toJson());
}

我错过了什么?我只想看看 Java 驱动程序如何将我的对象序列化为 JSON。 (MongoDB java驱动版本3.8.0)

【问题讨论】:

标签: mongodb geojson mongodb-java


【解决方案1】:

好的,找到问题了,BasicDBObject 中的默认编解码器没有覆盖geoJSON 的东西。不确定我所做的是否正确,但它似乎有效。

@Test
public void test() throws Exception{
    CodecRegistry cr = fromProviders(new ValueCodecProvider(), new BsonValueCodecProvider(), new DBObjectCodecProvider(), new GeoJsonCodecProvider());
    codec = cr.get(BasicDBObject.class);

    BasicDBObject dbo = new BasicDBObject();
    dbo.put("name", "some-name");
    dbo.put("location", new Point(new Position(100, 200)));
    System.out.println(dbo.toJson(codec));
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-19
    • 2017-04-07
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多