通过spring boot读取JSON映射结构

2023-12-11

如果我的 REST 服务返回以下 JSON 结构:

{
   "foo" : {
      "id" : "baz"
   }
   "qux" : {
      "id" : "toto"
   }
}

对我来说,它看起来像一个地图结构。我不知道如何使用 Spring Boot(通过 Jackson)阅读此内容。

我已经定义了我的 JSON 绑定类,如下所示:

public class Foos {

   private Map<String, Foo> fooInstances;

   private void setFooInstances(Map<String, Foo> fooInstances) {
      this.fooInstances = fooInstances;
   }

   private Map<String, Foo> getFooInstances() {
      return fooInstances;
   }

}

Foo 实例如下所示:

public class Foo {

   private String id;


   private void setId(String id) {
      this.id = id;
   }

   private String getId() {
      return id;
   }

}

发出请求的 spring 代码如下所示:

RestTemplate template = new RestTemplate();
ResponseEntity<Foos> responseEntity = (ResponseEntity<Foos>) template.getForEntity(serviceEndpointURL, Foos.class);

我最初遇到了 START_OBJECT 错误,我通过使用相应的地图创建 Foos 类来修复该错误,现在我没有收到错误。相反,我得到了一个填充的 ResponseEntity,带有“Foos”实例,但地图为空。知道我做错了什么吗?


像这样修改你的 Foos 类

public class Foos {

@JsonIgnore
private Map<String, Object> properties = new HashMap<String, Object>();

@JsonAnyGetter
public Map<String, Object> getProperties() {
return this.properties;
}

@JsonAnySetter
public void setProperty(String name, Object value) {
this.properties.put(name, value);
}
}

您可以从Object to Foo从地图上看。

如果您有任何疑问,请告诉我!

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

通过spring boot读取JSON映射结构 的相关文章

随机推荐

  • Jersey 2.x 安全上下文不起作用?

    当我尝试创建 java jersey 应用程序时 身份验证角色对我不起作用 Java 代码 package org student resource import javax annotation security PermitAll im
  • 我们可以在运行时为 scala 类分配/更改特征吗?如何 - 有示例代码吗?喜欢策略模式(四帮设计模式)

    解释一下我的问题 类别 玩具 特质1 说话像男性 特质2 说话像女人 我可以在运行时更改玩具的行为 特征 以便有时同一个对象像男性一样说话 有时同一个对象像女性一样说话吗 我想改变运行时的说话行为 sealed trait Speaker
  • Visual Studio 2012 中自己的双选项卡模板

    因此 Visual Studio 中有一个技巧 当您键入 for 然后双击 Tab 键时 Visual Studio 将创建 for int i 0 i lt length i 有什么方法可以创建我自己的模板吗 因为我不使用 LINQ 所以
  • 使用Ajc编译器和Spring问题AspectJ

    当我尝试使用 ajc 编译器通过 spring 来执行spectj时 出现以下错误 当我删除aspectj时 代码工作正常 编译时编织是否有任何问题导致 caused by java lang ExceptionInInitializerE
  • 哪些指令不能在特定的CPU环中发出

    根据这个来源 级别3 5 特定CPU环不能做某些事情 例如环1 2 3代码不能设置GDT 因为操作系统内核会崩溃 虽然很明显Ring 0可以执行所有指令 我想知道哪些指令不能在环1 环2和环3中发出 我在维基百科或 osdev 以及类似的来
  • 如何将 Ng-if 与 Firebase 结合使用

    我知道 ng if 指令创建了一个新的子作用域 我想知道如何以及是否可以将 ng if 放入另一个作用域中 目前我看不到任何图标 我尝试过 ng hide 但我看到了两个图标 同时 不可能解决这个问题 我也尝试了 ng show 但结果与
  • GATT回调注册失败

    我正在尝试编写一个应用程序来通过蓝牙低功耗发送消息 然后该消息将通过我的外设中的 UART 传递 我已按照步骤操作here应用程序会成功扫描并找到设备 但是 使用 BluetoothGatt BluetoothDevice connectG
  • 如何编写一个 MySQL 查询,该查询返回一个临时列,其中包含与该行相关的项目是否存在于另一个表中的标志

    我如何编写 MySQL 查询才能获得如下所示的所需结果 我有两张桌子 TABLE USERS ID Name 1 Ash 2 Tim 3 Jim 4 Jay 5 Tom TABLE FLAGS ID Reason 2 4 我想知道如何编写一
  • 如何从asynctask返回一个对象到android中的主类

    我想将文档返回到我的主类 但即使使用全局变量也不起作用 这是因为 asynctask 没有完成工作我认为有没有解决方案可以从 asynctask 获取对象 我已经尝试过 onPostExecute 中的矫揉造作 但如果我在 asynctas
  • 如何在 Angular 2 中取消 HTTPRequest?

    如何在 Angular 2 中取消 HTTPRequest 我只知道如何拒绝请求承诺 return new Promise resolve reject gt this currentLoading set url resolve reje
  • C++ std::map 保存任何类型的值

    基本上我想要 MyClass 拥有一个将字段名称 字符串 映射到任何类型的哈希图 值 为此 我编写了一个单独的 MyField 类来保存类型和值信息 这是我到目前为止所拥有的 template
  • python虚拟环境中的标准库在哪里?

    我使用的是Ubuntu系统 默认安装了python 3 5 当我使用venv模块来创建虚拟环境 我在虚拟环境中找不到标准库 只能找到 python 解释器的二进制文件 但是 当我切换到使用此虚拟环境时 我可以在 python 脚本中导入标准
  • 使用“dplyr::group_by()”获取多个组的“chisq.test()$p.value”

    我正在尝试对几个组进行卡方检验在 dplyr 框架内 问题是 group by gt summarise 似乎没有做任何伎俩 模拟数据 与有问题的数据结构相同 但随机 因此 p values 应该很高 set seed 1 data fra
  • ios - appium 无法从下往上滑动

    我想在 ios 上设置 wifi 状态 为此 我需要从控制中心底部向上滑动 dimension driverWrapper getIosDriver manage window getSize int middleX dimension g
  • 获取 ASP.NET 开发服务器端口号

    我需要用C 方法获取asp net开发服务器端口号 你能帮助我吗 您可以从请求中获取它 Request Url Port 严格来说 这并不是开发 Web 服务器的端口 这是当前使用的 Web 服务器的端口
  • 在javafx中为图像添加计时器

    例如 我想首先在 javafx 中为我的图像添加计时器 大约 3 秒我的第一个图像显示 然后大约 5 秒我的第二个图像显示 之后什么也没有显示 对此有什么想法吗 Use a Timeline更新imageProperty of an Ima
  • 如何设置堆积条形图中背景所有部分的颜色

    以下是英格兰和苏格兰之间拉锯战当前状态的代码 public TugOfWar String s super s data set DefaultKeyedValues2DDataset dataset new DefaultKeyedVal
  • 在 TypeScript React 中导入图像 - “找不到模块”

    我正在尝试导入图像以在带有 TypeScript 的 React 组件中使用 我使用的打包器是 Parcel 不是 Webpack 我创建了一个 d ts文件内的图像文件扩展名 并将其包含在里面tsconfig json 然而 当我尝试导入
  • K&R 练习 1-20 编程语言第二版

    我应该在这个程序中做什么 我无法理解 问题是 编写一个程序 detab 用正确的数字替换输入中的制表符 空格到下一个制表位的空间 假设有一组固定的制表位 例如每 n 列 n 应该是变量还是符号参数 我首先将制表符 t 替换为空格 但我想这是
  • 通过spring boot读取JSON映射结构

    如果我的 REST 服务返回以下 JSON 结构 foo id baz qux id toto 对我来说 它看起来像一个地图结构 我不知道如何使用 Spring Boot 通过 Jackson 阅读此内容 我已经定义了我的 JSON 绑定类