Allow preserving "is-attribute" with JsonNode to write output as attribute value

Đang mở
#217 2 bình luận 1 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
java
Lĩnh vực
backend

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện vấn đề với các phương thức ghi của JSON và XmlMapper được trình bày trong báo cáo, sau đó kiểm tra đường dẫn tuần tự hóa XML để xử lý JsonNode. Được xem là hoàn tất khi một trường lồng nhau được chọn, chẳng hạn như OrgnlIntrBkSttlmAmt, giữ Ccy dưới dạng thuộc tính XML, trong khi phần cấu trúc JsonNode còn lại được ghi dưới dạng các phần tử.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

I want to map a JsonNode to a XML. If I directly call XmlMapper write methods, this converts all the SubNode's of JsonNode as XMLElement which is fine.

But I want one of the field/subfield convert as XMLAttribute.

Is there a way to tell the mapper 'this node is not element, please convert it as attribute?'

Check the OrgnlIntrBkSttlmAmt field below (XML and json format is not preserved, sorry for that)

A sample JSON file is as follows :

{
    "FIToFIPmtCxlReq": {
        "Undrlyg": [
            {
                "TxInf": [
                    {
                        "CxlId": "3EfXiRbNk517MHY",
                        "OrgnlInstrId": "0amcNeP5QhXnY9x3Ykkj5TScqoTQF",
                        "OrgnlIntrBkSttlmAmt": {
                            "Ccy": "EUR",
                            "Value": 1462216
                        }
                    }
                ]
            }
        ]
    }
}

The converted XML is as follows

<?xml version='1.1' encoding='UTF-8'?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.056.001.01">
	<FIToFIPmtCxlReq>
		<Undrlyg>
			<TxInf>
				<CxlId>3EfXiRbNk517MHY</CxlId>
				<OrgnlInstrId>0amcNeP5QhXnY9x3Ykkj5TScqoTQF</OrgnlInstrId>
				<OrgnlEndToEndId>yy</OrgnlEndToEndId>
				<OrgnlIntrBkSttlmAmt>
					<Ccy>EUR</Ccy>
					<Value>1462216</Value>
				</OrgnlIntrBkSttlmAmt>
			</TxInf>
		</Undrlyg>
	</FIToFIPmtCxlReq>
</Document>

The requested output is as follows:

<?xml version='1.1' encoding='UTF-8'?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.056.001.01">
	<FIToFIPmtCxlReq>
		<Undrlyg>
			<TxInf>
				<CxlId>3EfXiRbNk517MHY</CxlId>
				<OrgnlInstrId>0amcNeP5QhXnY9x3Ykkj5TScqoTQF</OrgnlInstrId>
				<OrgnlEndToEndId>yy</OrgnlEndToEndId>
				<OrgnlIntrBkSttlmAmt Ccy="EUR">1462216</OrgnlIntrBkSttlmAmt>
			</TxInf>
		</Undrlyg>
	</FIToFIPmtCxlReq>
</Document>
Ngôn ngữ chính
Java
Star
636
Fork
250
Merge trung bình
7 giờ 10 phút
Pull request đã merge (30 ngày)
8

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của FasterXML/jackson-dataformat-xml

Tất cả issue của FasterXML/jackson-dataformat-xml

Issue tương tự

Thêm issue về Java

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.