使用 gson 反序列化内部类返回 null

2024-02-21

我想使用 Gson 将 JSON 反序列化为对象。 我已经定义了适当的类,其中一些类的对象包含在其他对象中。 当尝试反序列化整个 JSON 时,我得到了空值,因此我开始将其分解。

我达到了所有较低类都站在自己一边的地步,但是当尝试反序列化为包含该较小对象实例的对象时 - 所有东西都返回为空。

我的部分 JSON:

{
  "user_profile": {
    "pk": 1,
    "model": "vcb.userprofile",
    "fields": {
      "photo": "images/users/Screen_Shot_2013-03-18_at_5.24.13_PM.png",
      "facebook_url": "https://google.com/facebook",
      "site_name": "simple food",
      "user": {
        "pk": 1,
        "model": "auth.user",
        "fields": {
          "first_name": "blue",
          "last_name": "bla"
        }
      },
      "site_url": "https://google.com/"
    }
  }
}

用户配置文件类:

public class UserProfile {
    private int pk;
    private String model;
    private UPfields fields = new UPfields();//i tried with and without the "new"
}

UPfields 类:

public class UPfields {
    private String photo;
    private String facebook_url;
    private String site_name;
    private User user;
    private String site_url;
}

用户类别:

public class User {
    private int pk;
    private String model;
    private Ufields fields;
}

乌菲尔德级:

public class Ufields {
    private String first_name;
    private String last_name;
}

在我的主要内容中,我称之为:

Gson gson = new Gson();
UserProfile temp = gson.fromJson(json, UserProfile.class);

所以我的临时对象只包含空值。 我尝试将类更改为静态,但它不起作用。 UPfields 对象和所有较低的对象都工作正常。

有什么建议么?

当我删除

"{
  "user_profile":"

在右括号中,反序列化为 user_profile 对象是有效的。


为了解析这个json例如,您必须创建辅助类,其中将包含名为的字段user_profile类型的UserProfile:

public class UserProfileWrapper {
    private UserProfile user_profile;
}

并解析这个json此类的字符串:

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

使用 gson 反序列化内部类返回 null 的相关文章

随机推荐

  • Newtonsoft 中的 JSON null 处理问题

    我有一个问题null交易时处理Newtonsoft json 我想检查结果是null或不 基于此我想处理一些情况 我的代码如下 try var response GetApiData Post getApiBaseUrl data ToSt
  • Alt+Enter 停止在 IntelliJ 中处理 Dart 文件

    构建 Flutter 应用程序时ALT Enter键盘快捷键非常方便 不仅可以调出快速修复 还可以调出弹出菜单来包装 删除小部件 在我跑步之前它工作得很好flutter upgrade并更新了 IntelliJ 中的 Dart 和 Flut
  • 如何测试Oracle目录的读/写文件系统权限?

    假设您创建一个目录 例如 CREATE OR REPLACE DIRECTORY EXT DATA FILES AS data ext data files GRANT READ WRITE ON DIRECTORY SYS EXT DAT
  • Delphi中GetLastError和FormatMessage的正确用法是什么?

    我在 Delphi 2006 也是 Delphi 7 中使用第三方组件时遇到问题 在执行对该组件的函数调用时出现 未指定错误 您是否有在 Delphi 中使用 GetLastError 和 FormatMessage 的示例代码 这将允许我
  • ASP.Net MVC 4 的 WebAPI 未正确绑定复选框?

    我正在将 WebAPI 合并到我的开发中 并将所有表单提交发布到 WebAPI 控制器 我注意到复选框没有正确绑定到模型 我有一个表格使用 Html CheckBoxFor m gt m HasVideo 它生成一个复选框和一个隐藏的表单元
  • 反应式表单,检查用户名是否存在

    我在 Ionic Firebase 中遇到问题 验证器的值采用反应形式 特别是我有下面的这 2 个函数 用于检查 firebase 实时数据库中的用户名是否存在 这两个函数返回 Promise 布尔值 export class Userna
  • 以编程方式更改 IE 设置

    我正在尝试制作一个 Windows 应用程序 将 URL 添加到 IE 的 受信任站点 中 这部分有效 解决方案 http www nakov com blog 2009 05 15 c code for changing internet
  • PySimpleGUI 滑块有小数范围吗?

    我需要某种方法来在 PySimpleGUI 中的滑块上方显示十进制值 我已经尝试过输入十进制值 但是当我这样做时它会抛出错误 import PySimpleGUI as sg layout sg Slider range 850 999 d
  • 将 AjaxOnlyAttribute 和 ChildActionOnlyAttribute 组合到一个操作过滤器中

    我希望能够在控制器上标记一个动作 以便通过 ajax 调用和 RenderAction 来调用 问题在于这两个属性派生或实现不同的抽象 一种出路是下一个 AjaxOnly PartialViewResult GetViewAjax int
  • 当不使用字符串操作时,GCC 11 给出 -Wstringop-overflow

    这是我的代码 test c include
  • Swift 中的纯类协议

    我希望我的一些课程 不是全部 符合使用 仅限类的协议 https developer apple com library ios documentation Swift Conceptual Swift Programming Langua
  • 使用 MS Access 中的 GUID pk 插入 SQL Server 表

    我正在将数据库从 Access 后端迁移到 SQL Server 后端 同时保留 Access 前端 其中一张表设置了其 PK 的复制 ID 作为 Access DB 我们可以将值插入到该表中 而无需引用 PK 字段 因为 Access 会
  • 使用 jquery 选择最近的锚元素

    我有一张带有一个链接的表 如下所示 td a href class topiclink item Topic a td 我想选择 item topic的数据 我尝试使用 topiclink click function e var val
  • CoreData 无法完成以下错误:

    我有一个非常烦人的问题 我似乎无法解决 当我发送一条消息并保存到核心数据时 我有一个视图 完成后它会向数据库询问随机消息 句子 并将其保存到数据库中的另一行 如果我对最后一部分进行硬编码 而不从数据库中获取数据 那么它工作得很好 但是一旦我
  • 如何让 FTP-Simple 在 Visual Studio Code 中工作?

    我最近选择开始使用 Visual Studio Code 我想连接到远程服务器并直接在服务器上编辑文件 FTP Simple 似乎是一个很好的解决方案 但我很难理解该程序的一些基础知识 如果我连接到服务器 FTP Simple 是否会下载a
  • Service Worker 和 AppCache 的比较

    Service Worker 和 AppCache 之间的核心区别是什么 每种方法的优点和缺点是什么 何时更喜欢其中一种 主要区别在于 AppCache 是一个高级声明式 API 您可以使用它指定希望浏览器缓存的资源集 而 Service
  • 使用 Shibboleth 和 Google App Engine java 实现 SSO

    我正在开发一个应用程序谷歌应用引擎在Java中 在这个应用程序中我必须实现SSO using SAML2 我的谷歌应用程序引擎应用程序将充当服务提供商 而身份提供商将是一个单独的服务器 我只需编写 SSO 的 SP 端 我是 SAML 新手
  • 分离使用 python 多处理模块启动的子进程

    我想使用 python 中的 mutliprocessing 模块创建一个进程 但确保它在创建子进程的进程退出后继续运行 我可以使用 subprocess 模块和 Popen 获得所需的功能 但我想将代码作为函数而不是脚本运行 我想这样做的
  • 如何在 Mac 上更改 R 版本

    我正在尝试使用旧版本的 R 在 Mac 上运行包 在 Windows 上 常规 选项卡中有一个开关 但是 在 Mac RStudio 上找不到它 我参考了这个帖子 https support rstudio com hc en us art
  • 使用 gson 反序列化内部类返回 null

    我想使用 Gson 将 JSON 反序列化为对象 我已经定义了适当的类 其中一些类的对象包含在其他对象中 当尝试反序列化整个 JSON 时 我得到了空值 因此我开始将其分解 我达到了所有较低类都站在自己一边的地步 但是当尝试反序列化为包含该