GSON - 特定情况下的自定义序列化器

2024-01-06

我有这个架构:

public class Student {
       public String name;
       public School school;
}

public class School {
       public int id;
       public String name;
}
public class Data {
      public ArrayList<Student> students;
      public ArrayList<School> schools;
}

我想用 Gson 序列化 Data 对象,并得到类似的东西:

{ "students": [{ 
                 "name":"name1",
                 "school": "1"          //the id of the scool, not its entire Json
              }],
  "school": [{                        //the entire JSON
              "id" : "1",
              "name": "schoolName"
            }]
}

为此,我必须为学生部分使用自定义序列化程序,以便 Gson 只打印学校的 id。但对于学校来说,我必须有普通的序列化器。

我怎样才能只用一个 Gson 对象来完成所有事情?


您可以编写一个自定义序列化程序,如下所示:

public class StudentAdapter implements JsonSerializer<Student> {

 @Override
 public JsonElement serialize(Student src, Type typeOfSrc,
            JsonSerializationContext context) {

        JsonObject obj = new JsonObject();
        obj.addProperty("name", src.name);
        obj.addProperty("school", src.school.id);

        return obj;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GSON - 特定情况下的自定义序列化器 的相关文章

随机推荐

  • 加载 fxml 作为后台进程 - Javafx

    我最初的 fxml 比如说home fxml 有很多功能 因此需要很多时间才能完全加载 因此 为了避免程序启动和 fxml 加载之间的时间间隔 我又引入了一个 fxml 例如loader fxml 带有 gif 图像 该图像应在加载主 fx
  • 打印预览中不显示背景颜色

    我正在尝试打印一页 在该页面中 我为表格指定了背景颜色 当我在 Chrome 中查看打印预览时 它没有采用背景颜色属性 所以我尝试了这个属性 webkit print color adjust exact 但仍然没有显示颜色 http js
  • MySQL:返回更新的行

    我正在尝试将这两个查询组合在扭曲的Python中 SELECT FROM table WHERE group id 1013 and time gt 100 and UPDATE table SET time 0 WHERE group i
  • 在 Angular 2 中测试服务时,NgModule“DynamicTestModule”的提供程序无效

    我有以下服务 import Injectable from angular core import MenuItem from classes menu item import ITEMS from static data items li
  • javax.validation.ConstraintDefinitionException:HV000074

    我尝试在特定字段上使用 javax hibernate 自定义验证 但出现以下错误 javax validation ConstraintDefinitionException HV000074 com hertz digital hert
  • 提取 Excel 中前 10% 的列值并放入另一列中

    我有一个 Excel 电子表格 其中一列中包含值 我需要的是一个 VBA 代码 它将识别前 10 的列值 并将它们放置在相邻列中 为什么不忽略 VBA 并使用百分位数函数创建 true false 列并对其进行过滤 例如 B2 中的值是否位
  • CSS3 变换比例和容器并溢出

    我正在尝试使用 CSS3 Transform 缩放 为容器创建放大功能 并且一切似乎都运行良好 但是当缩放图像时 溢出仅覆盖图像的一部分 而将左上角部分排除在外溢出 代码如下 HTML div class outer img src htt
  • 具有相同选项的多个选择框 - 需要唯一的选择

    我有一个带有 3 个选择框的表单 每个选择框都有相同的选项 我想要求您必须为每个选择框选择不同的选项 例如 假设选项是 猫 狗 和 鸟 如果有人在第一个选择框中选择 鸟 我想从其他两个框中禁用或隐藏该选项 如果他们更改选择 则 鸟 将再次启
  • 完全使用本机代码(无 JNI)从后台线程更新 UI?

    我正在编写一个 Android 应用程序 它在后台线程中执行大量处理 计算是使用 C 在本机代码中执行的 我想在计算过程中使用部分结果更新 UI 我可以通过 JNI 来做到这一点 即在 java 中设置对 UI 对象的引用 然后通过 JNI
  • 如何在 cli 中使用 ejs lint

    我使用 EJS 作为节点上的视图引擎并进行快速设置 我想使用 ejs lint 来帮助获取错误行 我以前没有使用过 linter 但是通过阅读这里的文档 https github com RyanZim EJS Lint https git
  • Spring Boot + Ldap / AD + Kerberos SSO:KrbCryptoException - 校验和失败

    我正在尝试使用 Spring Boot Ldap 和 kerberos 来实现 SSO 对于不同的加密类型 我遇到了多个 Checksum failed 错误 环境详情 机器 Windows 10 JDK版本 Oracle 1 8 0 14
  • python在类中的dll回调函数中访问self

    我有一些 api 的 dll 函数 如下所示 def dllcallback items pass 我想在与 dll 回调链接的类函数中访问 self class myobject object def init self self a 9
  • Facebook Graph API GET 请求 - 应包含“fields”参数(Swift、Facebook SDK v4.5.1)

    我的 iOS 应用程序在注册期间使用 Facebook 的 Graph API 请求来获取用户信息 这在升级到 Facebook 最新的 SDK 之前运行良好 升级后 我收到运行时错误 指出 FBSDKLog 从 Graph API v2
  • 导入csv数据(iPhone SDK)

    对于以下代码 我可以读取字符串中的所有数据 并成功获取绘图数据 NSMutableArray contentArray NSMutableArray array NSString filePath 995 995 995 995 995 9
  • 从 python 内部调用 python 脚本

    我花了很长时间才找到这个解决方案 所以我希望其他人能够看到它 我想编写一个 python 脚本来创建一个虚拟环境并在其中安装模块 不幸的是 pip 不能很好地与子进程配合 详细信息如下 https github com pypa pip i
  • 如何使用 HTML AGILITY PACK 调用 Click

    In 网页浏览器 网络表格 我们可以InvokeMember click 当我们解析 HTML 时 我们怎样才能做到这一点HTML 敏捷包 a href 当我们在 Href 中有 javascript 时 如何使用 HTTP REQUEST
  • 绘图完全无边框

    我在 png 图像文件上设置了一个带有透明叠加散点图的漂亮图 我希望我的绘图窗口和 pdf 输出的大小与我的 png 962x745 完全相同 然而 即使在关闭轴 注释和框架之后 R 仍然在图像周围留下边框 这可以通过一个简单的示例来显示
  • SwiperJS - 如何设计分页项目符号的样式?

    在我的 ReactJS 应用程序中使用 SwiperJS 我已导入默认样式包 但无法弄清楚如何设置分页容器或项目符号的样式 In the pagination 参数在 内 每次我改变el param 分页就消失了 每次我改变bulletCl
  • 在 RecyclerView 中回收时,项目视图无法正确测量

    我有一个场景 当视图被回收时 布局不正确 我的行项目布局如下 注意wrap content线性布局宽度 weight and ellipsize
  • GSON - 特定情况下的自定义序列化器

    我有这个架构 public class Student public String name public School school public class School public int id public String name