java - 如何使用 JSON 映射 java 嵌入对象
问题描述
我建立了一个谷歌日历 API,我想念我的 json 文件的一点。
我成功地用我的 json 文件创建了我的 java 对象,但这里的问题是:
我有两节课:
public class User {
private String email;
private String firstname;
private String lastname;
Entity entity;
``
and my Entity
`` public class Entity {
private String name;
private String entityType;
private Entity rootEntity;``
here my json file :
for user
``[
{
"firstname": "Jean-Marc",
"lastname": "Chevereau",
"email": "xxxxxxx@xxxxx.com",
"entity": {
"name":"BFA",
"entityType":"secteur"
}
},
{
"firstname": "Florent",
"lastname": "Hamlin",
"email": "xxxxxxx@xxxxx.com",
"entity": {
"name":"IT",
"entityType":"secteur"
}
},
{
"firstname": "Benoit",
"lastname": "Micaud",
"email": "xxxxxxx@xxxxx.com",
"entity": {
"name":"EX",
"entityType":"offre",
"rootEntity":{
"name":"BFA"
}
}
}
]``
And a Entity json file
```[
{
"name": "BFA",
"entityType": "secteur",
"rootEntity": "",
},
{
"name": "EX",
"entityType": "Offre",
"rootEntity": "BFA",
}
}
]
但麻烦就在这里。如果在我的 User.json 中写实体名称,我不想写实体类型和根实体,因为如果我写实体名称是 BFA,它将始终是相同的实体类型和根实体。换句话说,我的 json 实体将始终是相同的,如果我只是输入我们所知道的引用实体对象的名称。
例如,在这个 user.json 文件中,我只需要将
[
{
"firstname": "Jean-Marc",
"lastname": "Chevereau",
"email": "xxxxxxx@xxxxx.com",
"entity": {
"name":"BFA",
}
},
{
"firstname": "Florent",
"lastname": "Hamlin",
"email": "xxxxxxx@xxxxx.com",
"entity": {
"name":"IT",
}
},
{
"firstname": "Benoit",
"lastname": "Micaud",
"email": "xxxxxxx@xxxxx.com",
"entity": {
"name":"EX",
}
}
]
解决方案
我想 com.fasterxml.jackson 的 @JsonIgnore 注释应该会有所帮助。
public class Entity {
private String name;
@JsonIgnore
private String entityType;
@JsonIgnore
private Entity rootEntity;
}
推荐阅读
- c# - 将连接结果选择为结果的问题
- javascript - 特定字母计数器的金额
- css - 只有当鼠标悬停在文本或图标上时它才应该是可点击的
- omnet++ - OMNeT++ 文档在哪里?
- php - 如何在 PHP 中迭代 JSON 数组并显示元素?
- java - 内部类作为外部类的一部分
- scala - 如何重命名保存在 Azure 数据湖中的文件
- javascript - 在特定索引处合并两个数组
- azure-data-factory - 将 Azure 数据工厂连接到 SAP BW
- go - 为什么不能在赋值中使用 (type func(string)) 作为类型 func(interface{})