2017-04-26 89 views
0

我有一个名为Activite的实体引用了自己,(Activite可以有很多activite),我试图通过休息服务获得所有activite。 这是实体:如何更改Json格式输出

@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; 
} 

这是我得到的JSON格式:

[{ 
"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 
} 
] 

,这就是我想:

[ 
     { 
      "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 
      }] 

正如你所看到的激活与编号11 12 13和131是重复的我希望他们只在儿童数组 我实际上在调用angularjs中的其余服务,所以是否有可能改变j儿子格式,我与angularjs或我应该改变在后端查询

+1

如果你不得不改变你发送给客户端的东西的结构,最好做一下服务器端 – Mistalis

+1

这两个json有什么区别? –

+1

你只是指JSON格式或其他东西的缩进? – CrazyMac

回答

1

我希望你已经粘贴了响应上面的json。最好是更改后端代码以获得所需的正确json,以便您可以使用json进行进一步处理。

+0

我怎样才能避免重复的儿童数组中的objets? –

+0

请检查您在后端生成json的情况。 –

+0

我正在使用Jpa存储库方法findAll获取数据 –