개체를 JSON 및 BSON으로 serialize하는 코드를 작성했습니다. 내 산출에 따르면 JSON보다 BSON의 크기가 더 큽니다. 예상 되나요? 내 Json.class
가벼운 JSON 또는 BSON은 어느 것입니까?
private ByteArrayOutputStream baos = new ByteArrayOutputStream();
private ObjectMapper mapper = new ObjectMapper();
public Json(Object obj) throws JsonGenerationException,
JsonMappingException, IOException {
mapper.writeValue(baos, obj);
}
(size()
및 toString()
위와 같이)
내 POJO를 A로부터
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);
}
(잭슨과 bson4jackson 사용) Bson.class
에 대한
다시 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<Person> persons = new LinkedList<>();
persons.add(p);
persons.add(p);
Bson bson = new Bson(persons);
Json json = new Json(persons);
System.out.println("Bson : " + bson.size() + ", data : " + bson.toString());
System.out.println("Json : " + json.size() + ", data : " + json.toString());
OUPUT :
Bson : 301, data : -
Json : 285, data : [{"name":"Ali Bin Baba","birthd...
내 질문 :
- 가 출력하는 사실인가, 또는 내 코드입니다 w rong?
- BSON과 JSON의 크기를 비교/확인하기위한 제안 사항이 있습니까?
생성 된 데이터의 디코딩을 시도합니다. BSon은 디코딩이 더 빠르며 더 컴팩트하지는 않습니다. –
밀도가 높은 형식을 원하고 Java를 사용하는 경우에는 프로토콜 버퍼를 사용해야하며 크기가 훨씬 더 작고 스키마가 필요하지만 훨씬 빠릅니다. –