2010-03-24 7 views
7

Powiedzmy, że mam obiekty takie jak biznes z listą obiektów adresów i zamówienie, które ma firmę.Możliwe jest skonfigurowanie Mappera Jackson-Json, aby wykluczyć właściwości na podstawie obiektu, który serializuje?

Czy można skonfigurować tak, że w przypadku serializacji zlecenia wyklucza listę adresów z obiektu biznesowego, a gdy firma jest serializowana, obejmuje tę listę?

Używam ajaxa do pobierania danych do RIA i podczas pracy z zamówieniem nie obchodzi mnie dokładnie dane adresowe, ale kiedy mam do czynienia z biznesem, chcę mieć listę.

Używam również Hibernacji dla trwałości, więc jest to naprawdę optymalizacja wydajności i wydajności.

Odpowiedz

8

Jeśli dobrze rozumiem pytanie, tak, myślę, że na to pozwoliła JSON Views dla Jacksona. Można zasadniczo utworzyć dwa różne widoki (profile) dla tego samego typu i wybrać, który z nich będzie używany do serializacji.

5

Można użyć JsonIgnore Annotation zignorować Adres listę w serializacji i wyłączyć użycie adnotacji w ObjectMapper „s SerializationConfig podczas szeregowania do Biznes. Oczywiście oznacza to, że inne adnotacje, których możesz użyć, również są ignorowane. Nie jest to doskonałe rozwiązanie, ale możesz znaleźć lepsze rozwiązanie tego problemu, mając nadzieję, że to pomoże (oczywiście).

0

Tak, możesz to zrobić. Wszystko, czego potrzebujesz, to zadeklarowanie Listy Adresów jako właściwości przejściowej w twoim obiekcie biznesowym.

Następnie dodaj następujący kod do jsonConfig:

jsonConfig.setIgnoreTransientFields(true); 
-1
@JsonIgnore 

służy do ignorowania właściwości, które nie chcesz przekonwertować do formatu JSON.

public class UserDocument { 

    private long id; 

    private String documentUrl; 

    @JsonIgnore 
    private byte documentType; 

    //traditional getters and setters 
} 

wyjściowa: To będzie konwertować właściwości id i documentUrl ale nie przekształci nieruchomości DocumentType.

{ 
    "id": 5, 
    "document_url": "/0/301115124948.jpg" 
} 
+0

To nie odpowiada OP, który pyta dokładnie, czy wyłączenie pól może być zablokowane i wyłączone. –