কম্পিউটার টিউটোরিয়াল

জ্যাকসন লাইব্রেরি ব্যবহার করে কাস্টম সিরিয়ালাইজার ইমপ্লিমেন্ট করা

Jackson API JSON ডেটা নিয়ে কাজ করার জন্য অনেক মেথড প্রদান করে। Jackson API ব্যবহার করে আমরা জাভা অবজেক্টকে JSON স্ট্রিং-এ রূপান্তর করতে পারি এবং JSON স্ট্রিং থেকে অবজেক্ট রিফর্ম করতে পারি। আমরা StdSerializer ক্লাস ব্যবহার করে একটি কাস্টম সিরিয়ালাইজার ইমপ্লিমেন্ট করতে পারি এবং serialize(T value, JsonGenerator gen, SerializerProvider provider) মেথড ওভাররাইড করতে হবে। এখানে প্রথম আর্গুমেন্ট value সিরিয়ালাইজ করা ভ্যালু রিপ্রেজেন্ট করে (null হতে পারে না), দ্বিতীয় আর্গুমেন্ট gen আউটপুট JSON কন্টেন্টের জন্য ব্যবহৃত জেনারেটর রিপ্রেজেন্ট করে এবং তৃতীয় আর্গুমেন্ট provider সিরিয়ালাইজ করার জন্য সিরিয়ালাইজার পাওয়ার প্রোভাইডার রিপ্রেজেন্ট করে।

সিনট্যাক্স

public abstract void serialize(T value, JsonGenerator gen, SerializerProvider provider) throws IOException

উদাহরণ

import java.io.*; 
import com.fasterxml.jackson.core.*; 
import com.fasterxml.jackson.databind.*; 
import com.fasterxml.jackson.databind.module.*; 
import com.fasterxml.jackson.databind.ser.std.StdSerializer; 

public class JacksonSerializeTest { 
    public static void main(String[] args) throws Exception { 
        JacksonSerializeTest test = new JacksonSerializeTest(); 
        test.serialize(); 
    } 
    
    public void serialize() throws Exception { 
        User user = new User(); 
        user.setFirstName("Raja"); 
        user.setLastName("Ramesh"); 
        ObjectMapper mapper = new ObjectMapper(); 
        SimpleModule module = new SimpleModule(); 
        module.addSerializer(User.class, new UserSerializer()); 
        mapper.registerModule(module); 
        String jsonStr = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user); 
        System.out.println(jsonStr); 
    } 
} 

// User ক্লাস
class User implements Serializable { 
    private String firstName; 
    private String lastName; 
    public String getFirstName() { return firstName; }
    public void setFirstName(String firstName) { this.firstName = firstName; }
    public String getLastName() { return lastName; }
    public void setLastName(String lastName) { this.lastName = lastName; }
} 

// UserSerializer ক্লাস
class UserSerializer extends StdSerializer<User> { 
    public UserSerializer() { this(null); } 
    public UserSerializer(Class<User> t) { super(t); } 
    
    @Override 
    public void serialize(User value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { 
        jgen.writeStartObject(); 
        jgen.writeStringField("firstName", value.getFirstName()); 
        jgen.writeStringField("lastName", value.getLastName()); 
        jgen.writeEndObject(); 
    } 
}

আউটপুট

{ 
  "firstName" : "Raja", 
  "lastName" : "Ramesh" 
}

ব্যাখ্যা: UserSerializer ক্লাস StdSerializer<User> এক্সটেন্ড করে। serialize() মেথড ওভাররাইড করে কাস্টম JSON আউটপুট জেনারেট করা হয়েছে। SimpleModule-এ রেজিস্টার করে ObjectMapper-এ অ্যাড করা হয়েছে।

  1. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্রের तीক্ষ্ণতা পরিবর্তন

  2. জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে চিত্রের কন্ট্রাস্ট পরিবর্তন

  3. জাভাতে Gson লাইব্রেরি ব্যবহার করে তারিখ ফরম্যাট করার পদ্ধতি

  4. জাভাতে কাস্টম Iterable বাস্তবায়ন করা