用gson解析Json返回null对象

2023-12-13

我正在通过 gson 解析 Json 字符串,这是 Json 字符串

[
{
    "ID": 1,
    "Name": "Australia",
    "Active": true
},
{
    "ID": 3,
    "Name": "Kiev",
    "Active": true
},
{
    "ID": 4,
    "Name": "South Africa",
    "Active": true
},
{
    "ID": 5,
    "Name": "Stockholm",
    "Active": true
},
{
    "ID": 6,
    "Name": "Paris",
    "Active": true
},
{
    "ID": 7,
    "Name": "Moscow",
    "Active": true
},
{
    "ID": 8,
    "Name": "New York City",
    "Active": true
},
{
    "ID": 9,
    "Name": "Germany",
    "Active": true
},
{
    "ID": 10,
    "Name": "Copenhagen",
    "Active": true
},
{
    "ID": 11,
    "Name": "Amsterdam",
    "Active": true
}
]

这就是将要使用的对象

public class MyBranch extends Entity {

public MyBranch () {
    super();
}

public MyBranch (int id, String name, String isActive) {
    super();
    _ID = id;
    _Name = name;
    _Active = isActive;
}

@Column(name = "id", primaryKey = true)
public int _ID;
public String _Name;
public String _Active;

}
Gson gson = new Gson();
Type t = new TypeToken<List<MyBranch >>() {}.getType();     
List<MyBranch > list = (List<MyBranch >) gson.fromJson(json, t);

构造的列表有 10 个对象,但问题是所有对象的数据成员都是 null,我不知道这有什么问题。 Entity是OrmDroid的Entity类。


您的字段的名称MyBranch类与您的字段不匹配json所以你必须使用SerializedName注解。

import com.google.gson.annotations.SerializedName;

public class MyBranch extends Entity {
    public MyBranch () {
        super();
    }

    public MyBranch (int id, String name, String isActive) {
        super();
        _ID = id;
        _Name = name;
        _Active = isActive;
    }

    @Column(name = "id", primaryKey = true)
    @SerializedName("ID")
    public int _ID;

    @SerializedName("Name")
    public String _Name;

    @SerializedName("Active")
    public String _Active;
}

EDIT:您还可以避免使用SerializedName通过简单的重命名进行注释MyBranch fields:

import com.google.gson.annotations.SerializedName;

public class MyBranch extends Entity {
    public MyBranch () {
        super();
    }

    public MyBranch (int id, String name, String isActive) {
        super();
        ID = id;
        Name = name;
        Active = isActive;
    }

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

用gson解析Json返回null对象 的相关文章

  • SDK 管理器缺少模拟器的旧版 Android 系统映像

    我刚刚重新安装了 ADT 捆绑包 20130522 和 Android Studio 因为我的 eclipse 安装再次搞砸了 但那是另一个故事了 在任一版本中 当我启动 SDK Manager 时 都没有任何 2 2 的系统映像 只有 2
  • 如何解码这个 JSON 字符串?

    这是我从 feed finder url 中得到的字符串 JSON 编码 updated 1265787927 id http www google com reader api 0 feed finder q u003dhttp itca
  • Google Play 商店中的 Android 应用程序与 LG G3(密度 538,尺寸 2560x1440)不兼容?

    Android 应用程序与具有高分辨率和密度的 LG G3 设备不兼容 我已经在清单中测试了以下配置 支持屏幕和兼容屏幕都不起作用
  • 在Java Servlet中获取通过jquery ajax发送的参数[重复]

    这个问题在这里已经有答案了 我在网上搜索这个主题 但找不到有效的示例 我会很高兴有人能给我帮助 这就是我测试的 ajax url GetJson type POST dataType json contentType application
  • CURL 相当于使用 VBA 的 POST JSON 数据

    我知道这与之前提出的一些问题类似 但有些东西仍然对我不起作用 如何执行以下命令 curl X POST data statements json H Content Type application json user username p
  • Ionic4 电容器 android livereload?

    是否有可能在带有 livereload 的 Android 设备上运行带有电容器的 ionic 4 应用程序 我已经找了几个小时的答案了 但没有成功 请帮忙 如果使用最新版本 ionic cli 现在有一个命令ionic capacitor
  • Android 中的处理程序到处理程序与 Messenger 到 Messenger 通信

    问题 使用起来是否 更好 更快且开销更少 Handler http developer android com reference android os Handler html与使用 Handler 通信相比信使 http develop
  • 彩信数据总是错误

    我正在从 Galaxy S6 读取短信和彩信数据 所有 SMS 消息都有一个date像这样的字段1456252633000 该数字是 unix 时间戳 1000 我发送 未收到 的彩信具有如下日期字段 1440628863时间戳是正确的 u
  • 最小有效 JSON 是多少?

    我仔细阅读了 JSON 描述http json org http json org 但我不确定我是否知道这个简单问题的答案 最小可能的有效 JSON 字符串是什么 string 该字符串是有效的 JSON 吗 42简单的数字是有效的 JSO
  • 视图随软键盘移动,遮挡其他 UI 对象

    我有一个容器视图 我希望它始终位于视图底部 位于 ScrollView 下方 ScrollView 有一些 UI 对象 其中一个是 EditText 对象 目前 当用户点击 EditText 对象内部时 android softkeyboa
  • 如何解决Android错误类型3?

    下面是我在项目中使用的清单格式 但是每当我尝试运行模拟器时 我都会收到下面提到的错误 请给我一个解决该错误的准确解决方案 工具信息 Android studio Nexus S API 22 android 5 1 1 我的清单文件格式
  • 如何对数组的数组进行 JSON_MODIFY?

    我的结构看起来像这样 Declare layout NVARCHAR MAX N Sections SectionName Section1 SectionOrder 1 Renders RenderName Render1 RenderO
  • java.exe 以非零退出值 1 结束

    只是为了开始 我并不是真正尝试从 Android 中的 xlsx 文件中读取单元格 我已经尝试了几乎所有我在 Google 上搜索到的内容 但是每次 在两台不同的 PC 上 都是 Java 1 7 0 79 当我尝试构建 运行 这个应用程序
  • 将 Python 列表(JSON 或其他)插入 MySQL 数据库

    所以我在Python中有一堆数组数据 嗯 相反 我有一个清单 我试图将此数组存储到 MySQL 数据库中的单个单元格中 我尝试使用 JSON 来序列化我的数据 但也许我不明白 JSON 是如何工作的 因此 在连接到我的数据库后 我尝试了上游
  • Android 导航 DeepLinks - 如何区分使用导航操作进行导航与深层链接

    我有导航操作和深层链接 根据您导航的位置 将您带到某个片段 我想确定是使用了深层链接还是仅使用了导航操作 这正是KEY DEEP LINK INTENT https developer android com reference andro
  • 地理围栏不可用以及如何处理

    我正在 Android 上使用地理围栏 它在大多数手机上都工作正常 但在其中一些上 它不起作用 在我的错误日志中显示 地理围栏不可用 某些用户没有为 Google Play 服务启用位置跟踪 我认为这就是地理围栏在他们的手机上不起作用的原因
  • 通知管理器所需的权限

    我正在尝试使用以下命令将振铃器设置为静音且请勿打扰优先级 AudioManager myAudioMgr AudioManager context getSystemService Context AUDIO SERVICE Notific
  • 如何将 Android 应用程序添加到已在 iOS 应用程序中使用的现有 Firebase 项目?

    我一直在我的 iOS 应用程序中使用 Firebase 项目 我现在想开始为 Android 应用程序使用相同的 Firebase 项目及其所有数据库和存储 在您的应用程序下Overview菜单 你应该按添加另一个应用程序并选择Androi
  • Web API 2.0 使用 pascalcase 模型接收驼峰式命名的 JSON 数据

    我正在尝试对我的 Web API 进行 PUT 调用 我在 WebApiConfig cs 中设置了以下内容 以处理以驼峰形式将数据发送回我的 Web 项目 config Formatters JsonFormatter Serialize
  • 无法 ACTION_VIEW 外部存储上的文件

    我的 Android 手机的外部存储中有一个文件 在本例中是模拟的 知道通往它的路径和 或拥有File代表它的对象 我如何使用Intent在适当的应用程序中打开它 我尝试的第一件事是 startActivity new Intent Int

随机推荐

  • 更换括号时出现异常

    嘿 我想用下划线替换随机字母 仅第一个 为此 我使用以下行 String newSubstring substring replaceFirst randomLetter 除非有括号 或 否则效果很好 然后我得到以下异常 06 14 15
  • 从 Windows 服务访问 Google Drive

    我试图了解是否可以从传统的 Windows 服务访问 Google Drive 而无需用户参与 遵循以下指南https developers google com drive quickstart 我已经能够创建一个命令行应用程序 将文件上
  • 显式等待在基于 Angular 的 PayPal 沙箱上不起作用

    我对 Selenium Python 的 PayPal 沙箱自动化有疑问 一般来说 我为每个操作方法编写显式等待 例如send keys or click 进入按钮 但它们就是不起作用 我尝试了几乎所有可用的显式等待 我尝试调整方法 该方法
  • UI 设计 - 是否包含取消按钮?

    我们正在为新的业务线应用程序设计 UI 我们没有真正的限制 可以自由地设计我们认为合适的 UI UI 将在 WPF 中完成 面向 Windows 7 Vista 和 XP Pro 用户 许多对话框的右下角都包含 确定 和 取消 按钮 您觉得
  • 将 Google 地图应用程序移植到 Osmdroid - 覆盖问题

    我正在将一个基于 Google 地图的项目移植到 Osmdroid 以便使用 OpenStreetMaps 除了添加由许多直线和一些文本组成的覆盖层之外 该端口工作正常 在这两个项目中 我通过计时器线程和调用 redrawOverlay 的
  • 在 Raspberry pi 上打开连接 SQLite 时出错

    更新 我只是检查了我使用的最新 JDBC jar 它缺少映射 Linux arm libsqlitejdbc so 通过从某处下载此文件可以解决此问题吗 到处都找不到 编辑 问题似乎是这样的 但我不知道如何解决这个问题 Caused by
  • Google OAuth2:何时以及如何使用刷新令牌

    我安装了一个 C 应用程序 其代码可以获取授权代码并将其交换为访问令牌 我正在存储刷新令牌 我知道在某些时候我需要使用它来获取新的访问令牌 假设我定期调用以下方法来监视与我的云端硬盘帐户共享的文件
  • 使用 v1 API 中的 cURL 将 Push FCM 发送到多个设备

    我需要将 FCM 推送通知发送到多个设备 我不能为此使用 主题 因为我需要将其发送到特定的和多个令牌 在旧方法中 我使用 register ids 来实现此目的 但 Google 在 2023 年 6 月 20 日宣布 旧方法将于 2024
  • 两个日期和两个时间之间的mySQL查询

    我想查询 mySQL 表以提取两个日期和两次时间之间的数据 我知道如何使用 Between 调用对单个 日期时间 列执行此操作 但我的列是一个 日期 列和一个 时间 列 我可以在网上找到的所有解决方案都是针对单个日期时间列的 我的范围从 第
  • 如何使用 matplotlib fill_ Between 作为默认 ylim

    无填充 带填充 plt fill between n data 我想填写默认的 y 限制 另外我可以做渐变填充吗 您可以使用ax get ylim 得到 y 极限 ax fill between n ymin data 填充最小值和曲线之间
  • iOS 工作线程

    我想在 iPhone 上创建一个后台线程 每 10 毫秒执行一些代码 但在我迷失在苹果的并发编程指南和线程编程指南之前again 我想问这里是否有人可以帮助我 我想做的事 创建后台工作线程 每 10 毫秒触发一次方法的执行 可能通过在该线程
  • 为什么可以通过构造函数分配只读属性?

    我已经设置了属性Name是只读的 但仍然可以分配 class Person public string Name get public Person string name Name name 尝试为属性设置值Name var p new
  • android TrafficStats getUidRxBytes 不准确

    我编写了一个小 Android 应用程序 发送 Http 请求 接收来自服务器的响应 并计算传输和接收的字节数 代码如下 long receivedBytes TrafficStats getUidRxBytes uid lastNumer
  • 使用 RSA 进行模乘会导致 Java Card 上出现错误

    你好 我正在开发一个关于 Java Card 的项目 这意味着大量的模乘 我设法使用 RSA 加密系统在这个平台上实现模乘 但它似乎适用于某些数字 public byte modMultiply byte x short xOffset s
  • ACS 中是否支持通过 WS-Trust/ActAs 进行身份委托?

    我刚刚开始使用基于声明的安全性 并且有一个与身份委托相关的问题 我已经成功设置了一个本地虚拟 STS 和几个依赖它进行身份验证的 WCF 服务 Web 应用程序通过 STS 对用户进行身份验证并调用服务 A代表用户 using Channe
  • Google 登录对话框关闭 android studio 后屏幕闪烁

    我面临这个问题 但无法找到解决方案 我使用 firebase 在我的应用程序中实现了 Google Sign In 我面临的问题是 每当 登录 对话框关闭时 屏幕上就会出现一条从上到下的黑色条带 它移动得非常快 但仍然很明显 我想删除横跨屏
  • 在 MFC 程序中挂钩窗口创建

    我想在 MFC 程序中挂钩窗口创建 有什么办法可以做到这一点吗 Use 设置WindowsHookEx安装一个CBTProc 这是一些示例代码 只需致电InstallHook 从程序的开头开始 然后监视HCBT CREATEWND通知代码
  • 无法在 Google Play 中更新我的应用:aapt 错误

    今天 当我尝试上传应用程序更新时 我从 Google Play 控制台收到以下信息 将新 APK 上传到生产环境 上传失败 无法使用 aapt dump badging 分析您的 APK 错误输出 无法运行 aapt dump badgin
  • 在 ArrayList 中搜索特定对象

    我有一堂课叫Person 它有以下内容attributes 它有2个属性 ID and Telephone 1 个人可以拥有多部电话 因此您可能会在下面看到具有多个 ID 的人 public ArrayList
  • 用gson解析Json返回null对象

    我正在通过 gson 解析 Json 字符串 这是 Json 字符串 ID 1 Name Australia Active true ID 3 Name Kiev Active true ID 4 Name South Africa Act