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

使用Jackson,如何从一个有趣的json获取对象列表?

蔚俊人
2023-03-14

我有这个json,我需要使用Jackson获得一个货币对象列表(对象本身有一个货币名称字段-“USD”、“type”和“show”),作为结果。我怎样才能用一种简单明了的方式来做呢?

欢迎任何帮助

{
    ...
    "result": "OK",
    "currency": {
        "currencies": {
            "LB": {
                "type": "A",
                "setting": {
                    "show": true,
                },
                "access" : true
            },
            "USD": {
                "type": "B",
                "setting": {
                    "show": true,
                },
                "access" : true
            },
            "RUB": {
                "type": "A",
                "setting": {
                    "show": true,
                },
                "access" : true
            },
          ....
          // and more.. 
         },
       ...
    }
 }

共有2个答案

宇文勇
2023-03-14

你可以把Json当成地图来读

Map<String, Object> map = JsonUtils.readObjectFromJsonString(jsonString, Map.class);

不过,它会抛出IOExcture,因此您需要处理它。这里是Javadoc。这个库被称为MgntUtils,可以在Maven工件和Github上找到(包括javadoc和源代码)

桂和同
2023-03-14
"currencies": {
        "LB": {
            "type": "A",
            "setting": {
                "show": true,
            },
            "access" : true
        },
        "USD": {
            "type": "B",
            "setting": {
                "show": true,
            },
            "access" : true
        },
        "RUB": {
            "type": "A",
            "setting": {
                "show": true,
            },
            "access" : true
        },
      ....
      // and more.. 
     },
   ...

这看起来像一张地图,而不是一张列表。这对你有帮助吗?因此,您需要创建Currency类,并让jackson解析此结构以进行映射

 类似资料:
  • 问题内容: 给定任意JSON,我想获取单个字段的值。 Jackson 怎么办? 有关 如何从Java的JSON字符串中找到指定的名称及其值?(GSON) 使用gson反序列化对象的特定JSON字段(GSON) 问题答案: 考虑到您没有描述数据结构的POJO,可以简单地执行以下操作: 解决评论部分中的问题 但是,如果您不希望消耗整个源,而只是访问其路径已知的特定属性,则必须使用Tokeniser自己

  • 问题内容: 我有以下JSON,我需要使用JSONPath获得纯值: 我使用的表达式是,但是我总是得到一个数组: 而不是字符串值()。 问题答案: 但是我总是得到一个数组: 那是必然的。如您在本文档中所读,位于“结果”下(几乎在底部): 请注意,jsonPath的返回值是一个数组,也是一个有效的JSON结构。因此,您可能想再次将jsonPath应用于结果结构,或使用您喜欢的数组方法之一对其进行排序。

  • 我正在尝试使用这些数据 https://api.nasa.gov/neo/rest/v1/neo/browse?api_key=demo_key 我成功地检索到了数据的“links”和“page”部分,但near_earth_objects数组为NULL。 我尝试了这篇文章中的建议: 使用Spring RestTemplate获取JSON对象列表 顶部答案给出错误: 下面是我的POJO的样子: 我

  • 问题内容: 我有两个问题: 如何使用Spring RestTemplate映射JSON对象列表。 如何映射嵌套的JSON对象。 问题答案: 也许这样 控制器代码 RequestMapping 是对扩展名的添加状态代码。使用以及方法。在此类中,由和返回。

  • 假设数据采集对象如下所示 我需要尝试使用java lambda函数在引擎匹配时获取匹配的品牌对象。 现在,如果发动机类型匹配,我需要获得品牌名称。例如,如果搜索引擎1,则需要返回Honda对象。 下面是代码示例:类Vehicle: 类别品牌: 类车: 类引擎: 班级主修: 以上是我尝试的代码。之前,我的目标是使用授权子对象列表中的关键字进行过滤。 现在,我使用它作为一个键,以父对象或品牌对象作为值

  • 问题内容: 我有一个JSON对象,其中有一个字段是生日日期: 但是该方法在JSONObject中不存在。 如何在用户对象中设置出生日期? 问题答案: 您可能会喜欢以下内容, 希望对您有所帮助:)