Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chuyển Bean thành XML không type hints dùng JSON-lib (Java)

JSON-lib cho phép convert Bean → JSON → XML. XMLSerializer.setTypeHintsEnabled(false) tắt type hint attribute (type="string", type="number") trong XML output.

Cú pháp

public void setTypeHintsEnabled(boolean typeHintsEnabled)

Ví dụ minh họa

import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;

public class BeanToXmlNoHintsTest {
    public static void main(String[] args) {
        Employee emp = new Employee("Krishna Vamsi", 115, 30, "Java");
        JSONObject jsonObj = JSONObject.fromObject(emp);
        System.out.println("JSON: " + jsonObj.toString(3));
        
        XMLSerializer xmlSerializer = new XMLSerializer();
        xmlSerializer.setTypeHintsEnabled(false); // TẮT type hints
        String xml = xmlSerializer.write(jsonObj);
        System.out.println("XML (no hints):\n" + xml);
    }
    
    static class Employee {
        private String empName, empSkill;
        private int empId, age;
        // constructor, getters...
    }
}

Output

JSON:
{
  "employeeName": "Krishna Vamsi",
  "employeeSkill": "Java",
  "employeeId": 115,
  "age": 30
}

XML (no hints):


  30
  115
  Krishna Vamsi
  Java

Với type hints (mặc định): Mỗi element có attribute type="string|number|...".

Lưu ý

  • JSON-lib **deprecated**. Dự án mới dùng **Jackson XML** (jackson-dataformat-xml) hoặc **JAXB**.
  • Jackson XML: XmlMapper với annotation @JacksonXmlRootElement, @JacksonXmlProperty.
  • Root element mặc định là <o> (object). Jackson cho phép customize root name.

Ví dụ Jackson XML (Modern)

// Dependency: com.fasterxml.jackson.dataformat:jackson-dataformat-xml
XmlMapper xmlMapper = new XmlMapper();
String xml = xmlMapper.writeValueAsString(emp);
// Output: ......