Как сгенерировать HTTP-ответ с помощью JSON в веб-сервис REST? - PullRequest
1 голос
/ 25 мая 2011

Я хочу ответить, используя json в веб-сервисе, вот так:

HTTP/1.1 200 OK
Content-Type: application/vnd.org.snia.cdmi.dataobject+json
X-CDMI-Specification-Version: 1.0
{
"objectURI" : "/MyContainer/MyDataObject.txt",
"objectID" : "AABwbQAQb/ENV52Ai8a3MA==",
"parentURI" : "/MyContainer/",
"mimetype" : "text/plain",
"metadata" : {
"cdmi_size" : "17"
},
"valuerange" : "0-17",
"value" : "Hello CDMI World!"
}

Но теперь я могу показывать только как

HTTP/1.1 200 OK
Content-Type: application/vnd.org.snia.cdmi.dataobject+json
X-CDMI-Specification-Version: 1.0
{
"objectURI" : "/MyContainer/MyDataObject.txt",
"objectID" : "AABwbQAQb/ENV52Ai8a3MA==",
"parentURI" : "/MyContainer/",
}   

Как поставить "meta" : {....} после "mimetype"сверху. А как получить "meta" как BasicDBObject или другие типы? Я пишу веб-сервис с использованием фреймворка java и java.

спасибо

1 Ответ

1 голос
/ 15 июня 2011

Вам нужно будет использовать аннотации JAXB Binding для аннотирования ваших объектов перед тем, как Джерси сериализует их в JSON.Ниже приведен пример класса, обратите внимание, что вы можете изменить порядок элементов с помощью атрибута propOrder аннотации @XmlType.Также возможно давать имена элементов XML, отличные от имен их методов.

@XmlRootElement
@XmlType(propOrder = { "name", "elements" })
public class ExampleObject implements Serializable {

    private static final long serialVersionUID = 1L;
    private Collection<String> elements = null;
    private String name = null;

    @XmlElementWrapper(name = "elements")
    @XmlElement(name = "element")
    public Collection<String> getElements() {
        return this.elements;
    }

    public String getName() {
        return this.name;
    }

    public void setElements(final Collection<String> elements) {
            this.elements = elements;
    }

    public void setName(final String name) {
            this.name = name;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...