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

从嵌套的LinkedHashMap访问数据

羊舌胡非
2023-03-14

我试图解析一个OpenAPI JSON文件,并访问值来构建一个rest模型类。我尝试使用对象映射器解析JSON文件,并将其发送到一个接收Map的方法

地图

restMap恰好在

"paths": {
"/api/v1/product/add": {
  "put": {
    "operationId": "add",
    "requestBody": {
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "productId": {
                "type": "number",
                "format": "int64"
              },
              "productName": {
                "type": "string"
              }
            }
          }
        }
      },
      "required": true
    }

我尝试循环映射,检查键是否等于x,然后getValue(x)返回LinkedHashMap,我必须继续这样做才能得到结果。在这种情况下,我的代码会变成一堆内部for循环,这是不好的。因此,我觉得我错过了什么。这是访问数据的正确方式还是有更好的方式?我希望我以正确的方式解析JSON文件。

也就是说,仅供参考,我可以将访问的值分配给现有的模型类,所以目前我并不担心。

如果我能对如何更好地实现这一目标有一些见解,我将不胜感激。


共有1个答案

温举
2023-03-14

我认为没有其他方法可以更好地访问数据。对于JSON数据,最好的java库是Jackson,您可以试试这个。

Jackson是一个多用途Java库,用于处理JSON数据格式。Jackson的目标是成为开发人员快速、正确、轻巧和符合人体工程学的最佳组合。

Jackson提供了三种处理JSON格式的方法,每种方法都有其优缺点:

  1. 流式API或增量解析/生成:作为离散事件读写JSON内容
  2. 树模型:提供JSON文档的可变内存树表示形式
  3. 数据绑定:将JSON转换为POJO的
 类似资料:
  • 问题内容: 我正在尝试使用zippopotam.us获取特定城市的邮政编码。我有下面的代码可以正常工作,但是当我尝试访问返回的密钥时 完整的JSON输出: 谢谢你的帮助。 问题答案: 我没有意识到第一个嵌套元素实际上是一个数组。正确访问邮政编码密钥的方法如下:

  • 问题内容: 假设我有json数据,例如 现在我正在从该json数据访问字段,例如: 如何以最有效的方式从给定的json数据访问第三个字段()? 不起作用 一种可能是我使用for循环构造字符串,然后进行eval评估,但是有没有有效的方法呢? 问题答案: 老实说,我无法理解您的问题。JSON已经结构化了,为什么需要更改结构? 在您的情况下,我将按以下方式访问它: 如果碰巧希望 遍历 数据,则需要: 更

  • }; 因此,我创建了一个对象变量“stock”。包含不同产品的代码、名称、成本和数量。 后来,我创建了一个函数“viewAllStock()”来在我的网站(超文本标记语言)中创建一个表。但是当我运行这个程序时,我在我创建的“产品代码”单元格下得到它 产品代码 [对象对象] [对象对象] [对象对象] [对象对象] [对象对象] 那么,如何使用Javascript在网站(超文本标记语言)中获取标题“

  • 首先,如果这已经发布,请道歉。我花了一些时间研究,但还没有找到解决方案。 我的目标是访问vb.net中web请求的各种JSON响应中的数据。我遇到了嵌套响应的问题;例如: 我的课程是这样的: 反序列化JSON: 这似乎工作正常,但是我不知道如何访问< code>href值,在本例中是“https://example.com/test2/”。

  • 此类的目的是模拟二进制搜索树的功能。在下面的代码中,我试图将它从一个结构和一堆函数改编成一个包装类,称为BST。但是,我不确定的一件事是如何从节点结构中访问“根”。Root当前在BST类中声明。 具体来说,在show函数中。它不像把它和其他函数放在节点中那样简单,因为根需要是唯一的,并且新节点至少被调用一次。Show将不会在当前状态下编译,我不确定从这里开始。