找不到类com.mongodb.client.model.geojson.Point的编解码器

时间:2019-04-07 12:33:13

标签: mongodb geojson mongodb-java

以下引发 org.bson.codecs.configuration.CodecConfigurationException:找不到类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)

1 个答案:

答案 0 :(得分:0)

好的,发现了问题,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));
}