Почему имена возвращаются с в JSON использование Джерси

Я использую JAXB, который является частью JAX-RS Джерси. Когда я запрашиваю JSON на свой выходной тип, все мои названия атрибута запускаются со звездочки как это,

Этот объект;

package com.ups.crd.data.objects;

import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;

@XmlType
public class ResponseDetails {
    @XmlAttribute public String ReturnCode = "";
    @XmlAttribute public String StatusMessage = "";
    @XmlAttribute public String TransactionDate ="";
}

становится этим,

   {"ResponseDetails":{"@transactionDate":"07-12-2010",  
             "@statusMessage":"Successful","@returnCode":"0"}

Так, почему там на имя?

8
задан bdoughan 30 September 2010 в 18:47
поделиться

1 ответ

Любые свойства, сопоставленные с @XmlAttribute, будут иметь префикс '@' в JSON. Если вы хотите убрать его, просто аннотируйте ваше свойство с @XmlElement.

Предположительно это сделано для того, чтобы избежать потенциальных конфликтов имен:

@XmlAttribute(name="foo") public String prop1;  // maps to @foo in JSON
@XmlElement(name="foo") public String prop2;  // maps to foo in JSON
9
ответ дан 5 December 2019 в 17:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: