কম্পিউটার

জাভাতে জ্যাকসন লাইব্রেরি ব্যবহার করে একটি কাস্টম সিরিয়ালাইজার কীভাবে বাস্তবায়ন করবেন?


The জ্যাকসন API৷ JSON ডেটার সাথে কাজ করার জন্য বেশ কয়েকটি পদ্ধতি প্রদান করে। জ্যাকসন API ব্যবহার করে, আমরা জাভা অবজেক্টকে JSON স্ট্রিং-এ রূপান্তর করতে পারি এবং JSON স্ট্রিং থেকে অবজেক্টকে সংস্কার করতে পারি। আমরা একটি কাস্টম সিরিয়ালাইজার বাস্তবায়ন করতে পারি StdSerializer ব্যবহার করে ক্লাস এবং সিরিয়ালাইজ(T মান, JsonGenerator gen, SerializerProvider প্রদানকারী) কে ওভাররাইড করতে হবে পদ্ধতি, প্রথম যুক্তি মান ক্রমানুসারে মান উপস্থাপন করে(শূন্য হতে পারে না ), দ্বিতীয় যুক্তি জেন Json সামগ্রী এবং তৃতীয় যুক্তি প্রোভাইডার আউটপুট করতে ব্যবহৃত জেনারেটরের প্রতিনিধিত্ব করে প্রদানকারীর প্রতিনিধিত্ব করে যা অবজেক্টের মান ক্রমিক করার জন্য সিরিয়ালাইজার পেতে ব্যবহার করা যেতে পারে।

সিনট্যাক্স

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); // pretty print
      System.out.println(jsonStr);
   }
}
// User class
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
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"
}

  1. কীভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি চিত্রের তীক্ষ্ণতা পরিবর্তন করবেন?

  2. কীভাবে জাভা ওপেনসিভি লাইব্রেরি ব্যবহার করে একটি চিত্রের বৈসাদৃশ্য পরিবর্তন করবেন?

  3. জাভাতে Gson লাইব্রেরি ব্যবহার করে কীভাবে একটি তারিখ ফর্ম্যাট করবেন?

  4. কিভাবে আমরা জাভাতে একটি কাস্টম পুনরাবৃত্তিযোগ্য বাস্তবায়ন করতে পারি?