2016-04-11 19 views
0

Bu, garip bir soru gibi görünebilir, ancak bunun nedeni eski ön uçlara bağlıdır. JSON veya w/e'de XML Tabanlı Fasulye tüketen.JSON yanıtları için @XMLAttribute etkinleştirme

Bazı fasulyemiz var. @XMLAttribute ve @XMLElement tarafından Açıklamalıdır. Bu ek açıklamaların, hizmetimizin yapılandırmasını açıklama notu olarak değiştirdiğimiz için göz ardı ediliyor gibi görünüyor (Yapılandırma, tüm XML sistemi olarak> 10 yaşındadır).

Şimdi JSON için bir MappingJackson2HttpMessageConverter kullanıyorduk. Bunu devre dışı bıraktım ve JSON yanıtı XMLElement adına saygı gösteriyor (bazı özellikler ek açıklamadan farklıdır, bu bizim ön uçlarımızda sorunlara neden oluyordu).

Şimdi son sorum, JSON kullanırken @ "anahtar" biçiminde dönmek için @XMLAttribute özelliklerinin açıklamalı olması mümkün mü?

örn.

@XMLAttribute Uzun kimlik;

JSON'da {"@id": 0} olarak dönecekti. Artık {"id" olarak geri dönüyor: 0} İyi olan, ancak bizim için değil, bazılarının bizim elimizde olmadığı (API'mızı kullanan istemciler) eski bir kod yüklü olduğu için bizim için değil.

Yapıları değiştiriyoruz çünkü herhangi bir kişi merak ettiğimizde kodumuzu düzgün bir şekilde test edemedik.

Mümkün olan @value döndürüyor? Yoksa özel bir işleyici mi demek istiyorsun?

@JsonProperty("@id") Long id; 

Ve istediğiniz gibi bir çıktıyı alırsınız:

+0

Neden ilgili Jackson ek açıklamalarını eklemek için sınıfları güncelleyemiyorsunuz? – OrangeDog

cevap

1

Eğer Jackson kullanıyorsanız, böyle kullanabilirsiniz.

Ayrıca bu yazının sizin için yararlı olup olmayacağını bilmediğim Why are names returned with @ in JSON using Jersey - Stackoverflow numaralı bu gönderi var.

Umarım size yardımcı oldum!

+0

Diğer sayfayı gördüm, ama bu Jersey (önerilen) nedeniyle oldu. Daha önce yaptığımı düşündüğümde bu açıklamayı deneyeceğim. –

+0

Yersterday göz ardı olmalı, bu gerçekten iyi çalışıyor gibi görünüyor. –

İlgili konular