gpt4 book ai didi

java - 使用 Gson 从 Json 反序列化 Map

转载 作者:行者123 更新时间:2023-12-04 04:50:40 25 4
gpt4 key购买 nike

假设您的 Json 由一堆自由形式对组成

"config": {
"k1": "abc",
"k2": "xyz"
},

规则
  • 我不知道我会有多少把 key
  • 所有值都是字符串
  • 我希望 map 可以通过键寻址

  • 其中一些值是字符串,其他值是数字。我在想 HashMap
    public class Outer {

    private Config config = new Config();

    public Config getConfig() {
    return config;
    }

    public void setConfig(Config config) {
    this.config = config;
    }


    public class Config {
    private Map<String, String> map = new HashMap<>();

    public Map<String, String> getMap() {
    return map;
    }

    public void setMap(Map<String, String> map) {
    this.map = map;
    }
    }
    }

    使用测试时,我看到 getConfig()返回一个非空值。但是当我到达 getMap()我得到 null
    请帮助我了解我在这里缺少什么。

    最佳答案

    你应该只使用:

    public class Outer {

    private Map<String, String> config = new HashMap<>();

    public Map<String, String> getConfig() {
    return config;
    }
    public void setConfig(Map<String, String> config) {
    this.config = config;
    }
    }

    在您编写的类模型中,您正在描述这样的 JSON:
    "config": {
    "map": {
    "k1": "abc",
    "k2": "xyz"
    }
    },

    但正如你所看到的,这不是你想要的......

    您必须意识到该字段 config您的 JSON 中的对象不是包含名为 map 的字段的对象表示 Map ... 但该字段 config 代表自己 Map !

    关于java - 使用 Gson 从 Json 反序列化 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17492586/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com