কম্পিউটার

জাভাতে জ্যাকসন ব্যবহার করে একটি ক্ষেত্রের বিকল্প নামগুলি কীভাবে সংজ্ঞায়িত করবেন?


The @JsonAlias৷ টীকা এক বা একাধিক বিকল্প নাম সংজ্ঞায়িত করতে পারে ডিসিরিয়ালাইজেশনের সময় গৃহীত বৈশিষ্ট্যগুলির জন্য, একটি জাভা অবজেক্টে JSON ডেটা সেট করা। কিন্তু সিরিয়ালাইজ করার সময়, যেমন একটি জাভা অবজেক্ট থেকে JSON পাওয়া, শুধুমাত্র প্রকৃত যৌক্তিক সম্পত্তির নাম উনাম এর পরিবর্তে ব্যবহার করা হয় .

সিনট্যাক্স

@Target(value={ANNOTATION_TYPE,FIELD,METHOD,PARAMETER})
@Retention(value=RUNTIME)
public @interface JsonAlias

উদাহরণ

import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
import java.io.*;
public class ObjectToJsonTest {
   public static void main(String[] args) throws JsonProcessingException {
      ObjectMapper mapper = new ObjectMapper();
      Technology tech = new Technology("Java", "Oracle");
      Employee emp = new Employee(110, "Raja", tech);
      String jsonWriter = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(emp);
      System.out.println(jsonWriter);
   }
}
// Technology class
class Technology {
   @JsonProperty("skill")
   private String skill;
   @JsonProperty("subSkill")
   @JsonAlias({"sSkill", "mySubSkill"})
   private String subSkill;
   public Technology(){}
   public Technology(String skill, String subSkill) {
      this.skill = skill;
      this.subSkill = subSkill;
   }
   public String getSkill() {
      return skill;
   }
   public void setSkill(String skill) {
      this.skill = skill;
   }
   public String getSubSkill() {
      return subSkill;
   }
   public void setSubSkill(String subSkill) {
      this.subSkill = subSkill;
   }
}
// Employee class
class Employee {
   @JsonProperty("empId")
   private Integer id;
   @JsonProperty("empName")
   @JsonAlias({"ename", "myename"})
   private String name;
   @JsonProperty("empTechnology")
   private Technology tech;
   public Employee(){}
   public Employee(Integer id, String name, Technology tech){
      this.id = id;
      this.name = name;
      this.tech = tech;
   }
   public Integer getId() {
      return id;
   }
   public void setId(Integer id) {
      this.id = id;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
   public Technology getTechnology() {
      return tech;
   }
   public void setTechnology(Technology tech) {
      this.tech = tech;
   }
}

আউটপুট

{
 "technology" : {
 "skill" : "Java",
 "subSkill" : "Oracle"
 },
 "empId" : 110,
 "empName" : "Raja",
 "empTechnology" : {
 "skill" : "Java",
 "subSkill" : "Oracle"
 }
}

  1. জাভাতে JSON ক্ষেত্রের নামের জন্য নামকরণের নিয়মগুলি কীভাবে সংজ্ঞায়িত করবেন?

  2. জাভাতে @এক্সপোজ টীকা ব্যবহার করে কীভাবে JSON থেকে একটি ক্ষেত্র বাদ দেওয়া যায়?

  3. জাভাতে জ্যাকসন ব্যবহার করে আমরা কীভাবে JSON-এ একটি ক্ষেত্রের নাম পরিবর্তন করতে পারি?

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