当前位置: 首页 > 知识库问答 >
问题:

使用spring boot机制将JSON文件作为映射读取

厉文栋
2023-03-14

我想问一下那里的Spring boogurus,我如何以Spring方式读取json文件并将其自动连接到Map

我看到过这篇文章,作者解释了如何对具有原始类型的普通pojo这样做:https://www . bael dung . com/configuration-properties-in-spring-boot

我想知道什么是以Spring方式加载这个json并将其连接到Map的最佳方式

共有1个答案

郭翰翮
2023-03-14

如果您将JSON作为输入传递给控制器作为api的输入,并且

  1. 如果您的JSON结构具有固定结构,则为其创建一个类并将其用作控制器中的Request主体

前任:

@GetMapping(/yourURL)
public @Responsebody YourResponseClass controllerFunction(@Requestbody 
ClassForJson request){

}

Spring会自动将JSON映射到您的类

Gson是一个将你的JSON字符串映射到一个类的库,如果你想将它转换成一个映射,你可以使用Map class

@GetMapping(/yourURL)
public @Responsebody YourResponseClass controllerFunction(@Requestbody String 
request){

   Gson gson = new Gson();
   Map map = gson.fromJson(request, Map.class);

}

第一种方法可以用以下第二种方式重写

@GetMapping(/yourURL)
public @Responsebody YourResponseClass controllerFunction(@Requestbody String 
request){

    Gson gson = new Gson();
    Map map = gson.fromJson(request, ClassForJson.class);

}

有关Gson库的更多信息,您可以参考此链接

 类似资料:
  • 因此,我得到了一个庞大的JSON文件,我需要从中提取数据。JSON格式如下所示: 为了阅读它,我试图创建一个类来映射键和对象。类似这样的东西,类似于这个问题: 但是我被数组卡住了,它包含了更多的对象,而不仅仅是简单的基本数据类型。 JSON文件很大,并且在其中到处都有类似类型的项。我对此相当陌生,可能会犯一些错误。任何朝着正确方向的帮助都是感激的。谢了!

  • 我想将我的Map编码为json。它看起来像这样: 其中 是枚举。一个简单的将不起作用,因为它不知道如何序列化枚举类。 错误消息是: 如何将此地图序列化为json?

  • 我正在试着得到这一片内数组中的项数 JSON 在不指定编码的情况下,将是一个缓冲区,而不是字符串(感谢用户nils)。json.parse应该对两者都起作用。现在我得到一个错误处。知道怎么解决吗?(使用节点5.2.0)

  • 问题内容: 如何使用PySpark读取以下JSON结构以触发数据帧? 我的JSON结构 我已经尝试过: 我希望将输出a,b,c作为列,并将值作为相应的行。 谢谢。 问题答案: Json字符串变量 如果您将 json字符串作为变量, 则可以 这会给你 Json字符串作为文件中的单独行(sparkContext和sqlContext) 如果 文件中 有 json字符串作为单独的行, 则可以 使用spa

  • 问题内容: 我有以下JSON表示盐请求的服务器响应: 我尝试使用以下POJO映射它: 现在每次我这样做: 该为空。如何使用Gson将JSON映射到POJO?我的变量顺序对Gson映射重要吗? 问题答案: 我的变量顺序对Gson映射重要吗? 不,不是这样。 如何使用Gson将JSON映射到POJO? 它是 区分大小写 和JSON字符串键应该是相同的POJO类使用的变量名。 您可以使用@Seriali

  • 我有以下JSON来表示salt请求的服务器响应: 我尝试用以下POJO映射它: 每次我这样做: 为空。如何使用GSON将JSON映射到POJO?变量的顺序对Gson映射重要吗?

  • 假设我有很多团队,比如:“团队A,团队B…团队Z”,每个团队至少有5个组件。现在我想创建一个通用控制器,它可以响应任何类型的请求,这样我就可以获得关于团队成员的信息。 例如,我的控制器必须能够映射此请求: 团队课程可以是: 而且 显然它既可以执行也可以执行,重点是我不想为每个团队和每个数字指定一个控制器,我只想要一个可以响应的控制器。 我还需要指定它可以接受的字符串和值的范围(例如,最大值为5)。

  • 问题内容: 我正在尝试从JSON文件读取值到数组以进行进一步处理。我正在使用JSON-Smart 1.2.0库。由于某些限制,我不能使用2.0版本。 我收到以下异常。 我什至尝试使用JSONArray而不是JSONObject。我在这儿做错了什么?这是读取JSON内容的正确方法吗? 以下是Java代码。 以下是json文件的内容。 问题答案: 您的JSON包含一个具有单个对象元素的数组,因此您应该