【问题标题】:remove null atributes from json with gson使用 gson 从 json 中删除空属性
【发布时间】:2014-07-18 02:06:06
【问题描述】:

我想使用 gson 删除具有空集合或空值的属性。

Aiperiodo periodo = periodoService();
//periodo comes from a service method with a lot of values
Gson gson = new Gson();
String json = gson.toJson(periodo);

我打印 json 并且我有这个:

{"idPeriodo":121,"codigo":"2014II",
"activo":false,"tipoPeriodo":1,
"fechaInicioPreMatricula":"may 1, 2014",
"fechaFinPreMatricula":"jul 1, 2014",
"fechaInicioMatricula":"jul 15, 2014",
"fechaFinMatricula":"ago 3, 2014",
"fechaInicioClase":"ago 9, 2014",
"fechaFinClase":"dic 14, 2014",
"fechaActa":"ene 15, 2015",
"fechaUltModificacion":"May 28, 2014 12:28:26 PM",
"usuarioModificacion":1,"aiAvisos":[],
"aiAlumnoCarreraConvalidacionCursos":[],
"aiAlumnoMatriculas":[],"aiMallaCurriculars":[],
"aiAlumnoCarreraEstados":[],"aiAdmisionGrupos":[],
"aiMatriculaCronogramaCabeceras":[],
"aiAlumnoCarreraConvalidacions":[],
"aiHorarioHorases":[],"aiAsistencias":[],
"aiAlumnoPreMatriculas":[],
"aiAlumnoMatriculaCursoNotaDetalles":[],
"aiOfertaAcademicas":[],"aiTarifarios":[]}

例如,对于那个 json,我不想拥有 aiAvisos 集合,有一种方法可以从 json 中删除它。 我正在处理很多集合,实际上我在这里展示了一个,我真的需要从 json 中删除这些。

我需要这样的东西:

{"idPeriodo":121,"codigo":"2014II",
"activo":false,"tipoPeriodo":1,
"fechaInicioPreMatricula":"may 1, 2014",
"fechaFinPreMatricula":"jul 1, 2014",
"fechaInicioMatricula":"jul 15, 2014",
"fechaFinMatricula":"ago 3, 2014",
"fechaInicioClase":"ago 9, 2014",
"fechaFinClase":"dic 14, 2014",
"fechaActa":"ene 15, 2015",
"fechaUltModificacion":"May 28, 2014 12:28:26 PM",
"usuarioModificacion":1}

我尝试将集合设置为 null,我检查了文档,也没有任何方法......

请有任何建议。 是的,我更新了几分钟前发布的 json。

非常感谢阅读本文的人!

【问题讨论】:

  • 嗨 oshingc,到目前为止,您尝试了哪些方法,哪些没有达到您的预期?请详细说明一些示例代码和具体问题。
  • 这不是一个有效的 JSON。在这里查看The JSON Validator
  • @Braj 我更新了我在帖子中显示的 json,实际上我正在使用有效的 JSON。感谢您的关注。

标签: java javascript json gson


【解决方案1】:

要遵循的步骤:

  • 使用 Gson#fromJson() 将 JSON 字符串转换为 Map<String,Object>
  • 迭代映射并从映射中删除 null 或空 ArrayList 的条目。
  • 使用 Gson#toJson() 从最终映射中返回 JSON 字符串。

注意:使用 GsonBuilder#setPrettyPrinting() 配置 Gson 以输出适合页面以进行漂亮打印的 Json。

在这里找到示例代码Remove empty collections from a JSON with Gson

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    相关资源
    最近更新 更多