json - 从 JSON 结果中删除类型信息

标签 json jersey jax-rs

目前我正在尝试创建一个只返回一个列表的网络服务;

@Path("/random")
@Singleton
public class Random
{
    @GET
    @Path("/")
    @Produces(MediaType.APPLICATION_JSON)
    public MyResult<String> test()
    {
        MyResult<String> test =  new MyResult<String>();
        test.add("Awesome");

        return test;
    }
}

我的 MyResult 类如下所示:

@XmlRootElement
public class MyResult<T> implements Iterable<T>
{
    private ArrayList<T> _items;
    private int _total;

    public MyResult()
    {
        _items = new ArrayList<T>();
    }

    public ArrayList<T> getItems()
    {
        return _items;
    }

    public void setItems(ArrayList<T> items)
    {
        _items = items;
    }

    public int getTotal()
    {
        return _total;
    }

    public void setTotal(int total)
    {
        _total = total;
    }

    public void add(T item)
    {
        getItems().add(item);
    }

    public Iterator<T> iterator()
    {
        return getItems().iterator();
    }
}

现在我从服务中得到以下结果:

{"items":[{"@type":"xs:string","$":"Awesome"}],"total":"0"}

但我不需要任何这些信息,我只需要:

{"items":["Awesome"],"total":"0"}

在我看来这需要在某处进行一些配置,谁知道如何获得所需的结果?

最佳答案

假设您使用的是 jackson,请查看 @JsonTypeInfo注解。它用于配置类型信息是否以及如何与 JSON 序列化和反序列化一起使用的详细信息。它的使用和行为取决于您使用的 jackson 版本。

关于json - 从 JSON 结果中删除类型信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11445627/

相关文章:

json - 使用mockito调用Rest方法

php - 使用 Node 作为 json 从 MySQL 获取 blob 图像并将其打印到 PHP 中

java - @Valid 不使用 Spring Boot 与 JAX-RS 一起工作

java - 在 JAR 中加载 Grizzly/Jersey 服务器

java - webResource.get(String.class) 返回 null

c# - 为数组数组命名

c# - 从 json 字符串获取数据

java - 为什么要使用 REST @Produces 注解

java - Apache wink 访问身份验证 header

java - Websphere App 8 : DataContentHandler requires String object, 被赋予类型为 com.sun.jersey.api.view.Viewable 类的对象