2017-04-26 1 views
0

Ich habe eine Entity namens Activite, die sich selbst referenziert, (eine Activite kann viele Aktivitäten haben) und ich versuche, alle Aktivitäten durch einen Rest-Service zu bekommen. ist dies die Einheit:Wie man die Ausgabe des Json-Formats ändert

@Entity 
public class Activite implements Serializable{ 
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) 
private long id_act; 

private String designation_fr; 
private String designation_ar; 
private String libelle; 

@ManyToOne 
private Activite parent; 
@OneToMany(mappedBy="parent") 
private Collection<Activite> children; 

public Collection<Activite> getChildren() { 
    return children; 
} 
public void setChildren(Collection<Activite> children) { 
    this.children = children; 
} 
@JsonIgnore 
public Activite getParent() { 
    return parent; 
} 
public void setParent(Activite parent) { 
    this.parent = parent; 
} 

das ist das Json-Format, das ich erhalte:

[{ 
"id_act": 1, 
"designation_fr": "fr", 
"designation_ar": "cfd", 
"libelle": "Activite 1", 
"children": [ 
{ 
"id_act": 11, 
"designation_fr": "bhjf", 
"designation_ar": "dhbf", 
"libelle": "Activite 1.1", 
"children": [], 
"id_prj": 1 
}, 
{ 
"id_act": 12, 
"designation_fr": "njkj", 
"designation_ar": "ffrgrn", 
"libelle": "Activite 1.2", 
"children": [], 
"id_prj": 1 
}, 
{ 
"id_act": 13, 
"designation_fr": "njkdj", 
"designation_ar": "frjn", 
"libelle": "Activite 1.3", 
"children": [ 
{ 
"id_act": 131, 
"designation_fr": "hcchchc", 
"designation_ar": "GFVVHG", 
"libelle": "Activite 1.3.1", 
"children": [], 
"id_prj": 1 
} 
], 
"id_prj": 1 
} 
], 
"id_prj": 1 
}, 
{ 
"id_act": 11, 
"designation_fr": "bhjf", 
"designation_ar": "dhbf", 
"libelle": "Activite 1.1", 
"children": [], 
"id_prj": 1 
}, 
{ 
"id_act": 12, 
"designation_fr": "njkj", 
"designation_ar": "ffrgrn", 
"libelle": "Activite 1.2", 
"children": [], 
"id_prj": 1 
}, 
{ 
"id_act": 13, 
"designation_fr": "njkdj", 
"designation_ar": "frjn", 
"libelle": "Activite 1.3", 
"children": [ 
{ 
"id_act": 131, 
"designation_fr": "hcchchc", 
"designation_ar": "GFVVHG", 
"libelle": "Activite 1.3.1", 
"children": [], 
"id_prj": 1 
} 
], 
"id_prj": 1 
}, 
{ 
"id_act": 131, 
"designation_fr": "hcchchc", 
"designation_ar": "GFVVHG", 
"libelle": "Activite 1.3.1", 
"children": [], 
"id_prj": 1 
} 
] 

und das, was ich zu bekommen:

[ 
     { 
      "id_act": 1, 
      "designation_fr": "fr", 
      "designation_ar": "cfd", 
      "libelle": "Activite 1", 
      "children": [ 
       { 
       "id_act": 11, 
       "designation_fr": "bhjf", 
       "designation_ar": "dhbf", 
       "libelle": "Activite 1.1", 
       "children": [], 
       "id_prj": 1 
       }, 
       { 
       "id_act": 12, 
       "designation_fr": "njkj", 
       "designation_ar": "ffrgrn", 
       "libelle": "Activite 1.2", 
       "children": [], 
       "id_prj": 1 
       }, 
       { 
       "id_act": 13, 
       "designation_fr": "njkdj", 
       "designation_ar": "frjn", 
       "libelle": "Activite 1.3", 
       "children": [{ 
        "id_act": 131, 
        "designation_fr": "njkdj", 
        "designation_ar": "frjn", 
        "libelle": "Activite 1.3.1", 
        "children": [], 
        "id_prj": 1 
        }], 
       "id_prj": 1 
       } 
      ], 
      "id_prj": 1 
      }] 

Wie Sie sehen können Activite mit der ID 11 12 13 und 131 sind doppelt Ich möchte sie nur in der Kinder-Array Ich bin eigentlich den Rest Service in angularjs, so ist es möglich, die j zu ändern Sohn-Format, das ich mit angularjs bekomme oder sollte ich die Abfrage im Back-End ändern

+1

Wenn Sie die Struktur von etwas ändern müssen Sie an den Client senden, ist es besser, es zu tun Server-Seite – Mistalis

+1

Was ist der Unterschied zwischen diesen beiden Json? –

+1

Beziehen Sie nur die Einrückung im JSON-Format oder etwas anderes? – CrazyMac

Antwort

1

Ich hoffe, Sie haben die Antwort json oben eingefügt. Es ist besser, den Back-End-Code zu ändern, um den richtigen json zu erhalten, den Sie brauchen, so dass Sie den json einfach für die weitere Verarbeitung verbrauchen können.

+0

Wie kann ich vermeiden, die Verdoppelung der Objekte, die in der Kinder-Array sind? –

+0

Bitte überprüfen Sie den Zustand, in dem Sie den Json im Backend generieren. –

+0

Ich hole die Daten mit der Jpa-Repository-Methode findAll –

Verwandte Themen