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

জ্যাকসন লাইব্রেরি ব্যবহার করে JSON সিরিয়ালাইজেশনে প্রপার্টি অর্ডার কন্ট্রোল করা

@JsonPropertyOrder একটি অ্যানোটেশন যা ক্লাস-লেভেল-এ ব্যবহার করা হয়। এটি ফিল্ডের একটি লিস্ট নেয় প্রপার্টি হিসেবে যা ডিফাইন করে যে কোনো অর্ডারে ফিল্ডগুলো অবজেক্ট JSON সিরিয়ালাইজেশন থেকে ফলাফলস্বরূপ স্ট্রিং-এ দেখাবে। অ্যানোটেশন ডিক্লেরেশনে অন্তর্ভুক্ত প্রপার্টিগুলো প্রথমে (ডিফাইন করা অর্ডারে) সিরিয়ালাইজ হয়, তারপর ডেফিনিশনে অন্তর্ভুক্ত নয় এমন প্রপার্টিগুলো।

সিনট্যাক্স

public @interface JsonPropertyOrder

উদাহরণ

import com.fasterxml.jackson.core.*; 
import com.fasterxml.jackson.databind.*; 
import com.fasterxml.jackson.annotation.JsonPropertyOrder; 
import java.util.*; 
import java.io.*; 

public class JsonPropertyOrderTest { 
    public static void main(String args[]) throws JsonGenerationException, JsonMappingException, IOException { 
        Employee emp = new Employee(); 
        emp.setFirstName("Adithya"); 
        emp.setEmpId(25); 
        emp.setLastName("Jai"); 
        emp.getTechnologies().add("Java"); 
        emp.getTechnologies().add("Scala"); 
        emp.getTechnologies().add("Python"); 
        ObjectMapper mapper = new ObjectMapper(); 
        mapper.writerWithDefaultPrettyPrinter().writeValue(System.out, emp); 
    } 
} 

// Employee ক্লাস
@JsonPropertyOrder({ 
    "firstName", 
    "lastName", 
    "technologies", 
    "empId" 
}) 
class Employee { 
    private int empId; 
    private String firstName; 
    private String lastName; 
    private List<String> technologies = new ArrayList<>(); 
    
    public int getEmpId() { return empId; }
    public void setEmpId(int empId) { this.empId = empId; }
    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; }
    public List<String> getTechnologies() { return technologies; }
    public void setTechnologies(List<String> technologies) { this.technologies = technologies; }
}

আউটপুট

{ 
  "firstName" : "Adithya", 
  "lastName" : "Jai", 
  "technologies" : [ "Java", "Scala", "Python" ], 
  "empId" : 125 
}

ব্যাখ্যা: @JsonPropertyOrder এনোটেশন ক্লাসে দিয়ে ফিল্ডের অর্ডার নির্দিষ্ট করা হয়েছে: firstName, lastName, technologies, empId। JSON আউটপুটে একই অর্ডার মেনটেইন করা হয়েছে। অ্যালফাবেটিক্যাল অর্ডার বাদে কাস্টম অর্ডার পাওয়া যায়।

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

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

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

  4. জাভাতে Gson লাইব্রেরি ব্যবহার করে জেনেরিক টাইপ সিরিয়ালাইজ এবং ডিসিরিয়ালাইজ করা