【问题标题】:Spring MVC and json serializationSpring MVC 和 json 序列化
【发布时间】:2012-01-03 04:30:44
【问题描述】:

我正在使用 spring mvc 和数据以 json 格式发送到客户端开发 Web 应用程序。 我想有一些相同模型对象的视图,因此我只能返回需要的数据,而不是更多。杰克逊库 @JsonIgnore@JsonIgnoreProperties 不适合这个。杰克逊库也有@JsonView@JsonFilter 注释,但它们也没有帮助。如何处理这个问题。例如,我在 UI 的某些页面中需要可能的目标列表,有时不需要。 This 是同一个问题,但回答对我没有帮助

 @Entity
    public class Warrant implements Serializable {

          @Column
          String name;

        @JsonIgnore
        @ManyToOne
        private User owner;

        @Column
        private String value;

        @OneToMany(mappedBy = "warrant", targetEntity = com.endersys.lims.model.Target.class)
        private List<Target> possibleTargets;

       .....
    }

【问题讨论】:

    标签: json rest spring-mvc jackson


    【解决方案1】:

    您正在混合应用程序层。不要将实体从持久层发送到视图。使用传输对象,您可以轻松控制向世界展示的内容。

    您可能希望使用Dozer 之类的框架来自动化层之间的数据传输。

    【讨论】:

    • 推土机岩石! :-) 完全同意,将 JSON 序列化与 ORM 映射混合在一个地方。
    • @Peter Perhac,我想用所需的字段将我的模型对象序列化为 json在编译时生成 getter setter
    • 我认为唯一的方法是编写 @view(name={proper1,proper3},name2={property4}) 注释并生成 java 类,由名称和字段指定并从 spring 控制器返回这个生成的类.这可能吗。或者我必须手动为每个视图创建java类。
    • Dozer 框架很有用,但我不想创建仅用于映射的 java 类。我可以用注释处理吗?
    猜你喜欢
    • 2012-02-15
    • 2011-06-28
    • 1970-01-01
    • 2011-08-26
    • 2015-02-24
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 2015-07-11
    相关资源
    最近更新 更多