2010-06-04 38 views
8

Tôi đang cố gắng viết một số mã sẽ lấy bất kỳ đối tượng nào và chuyển đổi nó thành một biểu diễn chuỗi của đối tượng đó. Việc tuần tự hóa sẽ không bao gồm bất kỳ thuộc tính tạm thời nào và toString() thường là địa chỉ bộ nhớ cho đối tượng. Tôi không thể mong đợi đối tượng có một toString() được định nghĩa hoặc thực hiện Serializable.Java: Cách chuyển đổi bất kỳ đối tượng nào thành biểu diễn chuỗi dữ liệu

Có cách nào để xác định dữ liệu trong đối tượng và chuyển đổi nó thành chuỗi không? Tôi sẽ sẵn sàng viết một cái gì đó để đi qua lớp và sử dụng sự phản chiếu để tìm dữ liệu, nếu cần thiết, nhưng tôi đã hy vọng tìm thấy một cái gì đó đơn giản hơn một chút.

Mọi đề xuất sẽ được đánh giá cao. Cảm ơn.

+0

Không rõ nếu bạn muốn đại diện thông tin (để hiển thị, gỡ lỗi) hoặc serialization văn bản (để đối tượng có thể được khôi phục từ chuỗi). – leonbloy

Trả lời

11

Lấy commonns-lang của apache. Nó có một ReflectionToStringBuilder mà sẽ làm các phản ánh để stringing cho bạn.

Nó cũng chấp nhận Kiểu để cho phép bạn tùy chỉnh đầu ra.

3

XMLEncoder có thể phù hợp. Nó tuần tự hóa đối tượng thành XML, có thể đọc được bằng con người.

5

XStream là một tùy chọn khác để tạo XML từ các đối tượng của bạn.

2

Api phản chiếu java là một cách khá mạnh mẽ để nhìn vào đối tượng, bạn có thể sử dụng nó để viết một số trình chuyển đổi tùy chỉnh để trích xuất thông tin sang định dạng yêu thích của bạn.

Bạn cũng có thể sử dụng javaer api của java để chuyển đổi nó thành thẳng xml. http://java.sun.com/javase/6/docs/api/javax/xml/bind/Marshaller.html

Các vấn đề liên quan