Tag: bson

反序列化MongoDB BSON

我试图从REST服务中获取响应,该服务查询MongoDB的实例并将响应解析为Java对象。 Web服务返回MIME类型为html的响应,并使用换行符分隔返回的每个记录(尽管我可以调整服务返回的内容)。 将BSON响应转换为Java对象的最简单/最有效的方法是什么? 我已经用Java创建了一个模板类来存储数据。 提前致谢! 编辑:一位同事建议我在webservice本身使用MongoDB Java驱动程序的BSON解析实用程序,然后返回一个格式良好的HTML字符串。 这仍然让我在我的应用程序中进行解析,但暂时将作为一种解决方法。 仍在寻找一种方法来轻松反序列化对Java对象的BSON响应。

哪一个更轻,JSON还是BSON?

我编写了将对象序列化为JSON和BSON的代码。 根据我的输出,生成的BSON的大小比JSON大。 这是预期的吗? 从我的Bson.class代码 (使用Jackson和bson4jackson) private ByteArrayOutputStream baos = new ByteArrayOutputStream(); private BsonFactory fac = new BsonFactory(); private ObjectMapper mapper = new ObjectMapper(fac); public Bson(Object obj) throws JsonGenerationException, JsonMappingException, IOException { mapper.writeValue(baos, obj); } public int size() { return baos.size(); } public String toString() { byte[] bytes = baos.toByteArray(); return new String(bytes); } 来自我的Json.class private […]

使用Java MongoDb驱动程序的Bson漂亮打印

我使用Java MongoDB驱动程序3.3版使用Mongo聚合框架。 我有一个聚合管道 ,它只是List类型的集合。 我试图找到一种方法来打印管道的每个阶段。 在每个元素上调用toString方法是不够的,因为每个阶段都是Bson接口的简单实现的实例,即SimplePipelineStage 。 这个愚蠢的类没有任何toString方法的重写。 使用mongo java驱动程序Aggregates类的工厂方法创建管道,如下所示: Aggregates.match(/* … */) Aggregates.project(/* … */) // And so on… Javadoc可以在这里找到。 我怎么能打印这样的物体? 我确信BasicDbObject类型有一个智能的toString实现,但我找不到从Bson转换为Bson的BasicDbObject 。 非常感谢提前。

用于java的BSON库?

我们在java http://blog.locut.us/main/2009/10/14/which-is-the-best-java-json-library.html中对JSON有很好的支持,但BSON呢。 您知道哪些库为java提供BSON支持? 它显然应该在运行时有效。

编码对象时未使用MongoDB BSON编解码器

我正在尝试将对象存储在MongoDB数据库中(使用MongoDB 3.0.2)并在尝试使用错误消息对对象进行编码时收到CodecConfigurationException Can’t find a codec for class java.time.LocalDate. 我已经编写并包含了LocalDate对象的编解码器。 细节如下。 我试图存储的对象DutyBlock具有以下成员变量: public class DutyBlock { private LocalDate startDate; private LocalDate endDate; //Inclusive private int blockLength; private double pointValue; private ArrayList assigned; } 我编写了以下编解码器来编码数据库中的DutyBlock对象: public class DutyBlockCodec implements Codec { @Override public void encode(BsonWriter writer, DutyBlock t, EncoderContext ec) { Document document = new Document(); […]

将BSON类型ObjectId转换为JSON(存储在Mongodb中)-Java

new Gson()。toJson(new ObjectId()) 当我做上述操作时,我得到的输出是 “_id”:{“_ time”:1374347520,“_ machine”:-1025067326,“_ EN”:585905201,“_ new”:false} 但实际上我希望它成为 “_id”:{ “$ OID”:51eae100c2e6b6c222ec3431} 这是通常的mongodb ID格式。 Java的优选方法是什么? 更新: 我的价值对象 import com.google.gson.annotations.SerializedName; import org.bson.types.ObjectId; public class TaskObject { @SerializedName(“_id”) private ObjectId _id; @SerializedName(“revNo”) private int revNo; } 我试图用自定义_id将其存储到mongodb TaskObject taskObject = new TaskObject(); taskObject.set_id(new ObjectId()); TaskMongoDBClient.getInstance(). persistNewTaskData(new Gson().toJson(taskObject)); 存储在mongodb中的内容如下所示。 _id:{“_ time”:1397464341,“_ machine”:1441187434,“_ EN”: – 1687457948,“_ new”:true} 而不是_id:{“$ […]