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

Free-Thinker 阅读:77 2025-06-02 22:19:02 评论:0

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

@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
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号