我编写了将对象序列化为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 ByteArrayOutputStream baos = new ByteArrayOutputStream();
private ObjectMapper mapper = new ObjectMapper();
public Json(Object obj) throws JsonGenerationException,
JsonMappingException, IOException {
mapper.writeValue(baos, obj);
}
(size()和toString()如上)
我的POJOs是Person.class和Address.class。
在我的主类:
Address a = new Address("Jln Koli", "90121", "Vila", "Belgium");
Person p = new Person("Ali Bin Baba", new Date(), 90.0, 12, a);
List persons &#61; new LinkedList<>();
persons.add(p);
persons.add(p);
Bson bson &#61; new Bson(persons);
Json json &#61; new Json(persons);
System.out.println("Bson : " &#43; bson.size() &#43; ", data : " &#43; bson.toString());
System.out.println("Json : " &#43; json.size() &#43; ", data : " &#43; json.toString());
输出&#xff1a;
Bson : 301, data : -
Json : 285, data : [{"name":"Ali Bin Baba","birthd...
我的问题&#xff1a;
>是输出true&#xff0c;还是我的代码错误&#xff1f;
>任何建议检查/测试&#xff0c;比较BSON和JSON的大小&#xff1f;