我想在 Web 服务中使用 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 或其他类型?我使用 jersey 框架和 java 编写 Web 服务。
谢谢
最佳答案
在 Jersey 将对象序列化为 JSON 之前,您需要使用 JAXB Binding 注释来注释对象。下面是一个示例类,请注意,您可以使用 @XmlType 注释的 propOrder 属性对元素重新排序。还可以为 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;
}
}
关于java - 如何在 REST Web 服务中使用 json 生成 http 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6120675/