मैंने जेएसओएन और बीएसओएन को वस्तुओं को क्रमबद्ध करने के लिए कोड लिखा है। मेरे आउटपुट के अनुसार, जेएसओएन की तुलना में उत्पादित बीएसओएन आकार में अधिक है। क्या यह उम्मीद है?कौन सा हल्का, जेएसओएन या बीएसओएन है?
मेरे कोड से Bson.class
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 का प्रयोग करके) के लिए मेरे 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<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 रोंग?
- बीएसओएन और जेएसओएन के आकार की तुलना करने के लिए जांच/परीक्षण करने के लिए कोई सुझाव?
मैं उत्पन्न डेटा को डीकोड करने का प्रयास करूंगा। मुझे लगता है कि बीएसओएन डीकोड करने के लिए तेज़ है, अधिक कॉम्पैक्ट नहीं। –
यदि आप घने प्रारूप चाहते हैं और जावा का उपयोग कर रहे हैं, तो निश्चित रूप से प्रोटोकॉल बफर के लिए जाएं, वे दोनों की तुलना में बहुत अधिक कॉम्पैक्ट हैं और बहुत तेज हैं हालांकि उन्हें स्कीमा की आवश्यकता है। –