Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để chuyển đổi một bean sang XML mà không có gợi ý kiểu bằng cách sử dụng JSON-lib API trong Java?


JSON-lib là một thư viện Java để tuần tự hóa và hủy tuần tự hóa các bean java, bản đồ, mảng và bộ sưu tập ở định dạng JSON. Chúng tôi có thể chuyển đổi bean sang XML mà không cần gợi ý về kiểu bằng cách sử dụng setTypeHintsEnabled () phương thức của lớp XMLSerializer, phương thức này đặt liệu các loại JSON có thể được đưa vào làm thuộc tính hay không. Chúng tôi có thể vượt qua false làm đối số cho phương thức này để vô hiệu hóa các gợi ý kiểu trong XML.

Cú pháp

public void setTypeHintsEnabled(boolean typeHintsEnabled)

Ví dụ

import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
public class ConvertBeanToXMLNoHintsTest {
   public static void main(String[] args) {
      Employee emp = new Employee("Krishna Vamsi", 115, 30, "Java");
      JSONObject jsonObj = JSONObject.fromObject(emp);
      System.out.println(jsonObj.toString(3)); //pretty print JSON
      XMLSerializer xmlSerializer = new XMLSerializer();
      xmlSerializer.setTypeHintsEnabled(false); // this method disable type hints
      String xml = xmlSerializer.write(jsonObj);
      System.out.println(xml);
   }
   public static class Employee {
      private String empName, empSkill;
      private int empId, age;
      public Employee(String empName, int empId, int age, String empSkill) {
         super();
         this.empName = empName;
         this.empId = empId;
         this.age = age;
         this.empSkill = empSkill;
      }
      public String getEmployeeName() {
         return empName;
      }
      public int getEmployeeId() {
         return empId;
      }
      public String getEmployeeSkill() {
         return empSkill;
      }
      public int getAge() {
         return age;
      }
   }
}

Đầu ra

{
   "employeeName": "Krishna Vamsi",
   "employeeSkill": "Java",
   "employeeId": 115,
   "age": 30
}
<?xml version="1.0" encoding="UTF-8"?>
<o>
   <age>30</age>
   <employeeId>115</employeeId>
   <employeeName>Krishna Vamsi</employeeName>
   <employeeSkill>Java</employeeSkill>
</o>