如何为这个 JSON 创建 Java 的 POJO 类?

huangapple go评论82阅读模式
英文:

How to make java POJO for this json?

问题

我对于在给定的 JSON 对象中,当键值为数字时如何创建一个 POJO(普通的 Java 对象)感到好奇。

{
    "id": 1,

    "options": {
        "1": "a",
        "2": "b",
        "3": "c",
        "4": "e"
    }
}

正如您所看到的,"options" 中的键是数字值,然而在 Java 中变量名不能为数字。要将其转化为 Java POJO,您可以使用 @JsonProperty 注解来处理这种情况。以下是一个示例:

import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Map;

public class MyPOJO {
    private int id;
    private Map<String, String> options;

    @JsonProperty("id")
    public int getId() {
        return id;
    }

    @JsonProperty("id")
    public void setId(int id) {
        this.id = id;
    }

    @JsonProperty("options")
    public Map<String, String> getOptions() {
        return options;
    }

    @JsonProperty("options")
    public void setOptions(Map<String, String> options) {
        this.options = options;
    }
}

在这个示例中,我们使用了 Jackson 库的 @JsonProperty 注解,将 JSON 中的键映射到 Java 类的字段或方法。这样您就可以在 Java 中表示这样的 JSON 结构,并且可以正常使用字段名为数字的键。

英文:

I'm curious about how to make a POJO when the key values are numeric as given in the given JSON object.

{
    &quot;id&quot; : 1,

    &quot;options&quot;: {
        &quot;1&quot;: &quot;a&quot;,
        &quot;2&quot;: &quot;b&quot;,
        &quot;3&quot;: &quot;c&quot;,
        &quot;4&quot;: &quot;e&quot;
    }
}

as you can see options have numeric values as a key, so how to make java POJO out of it, as a variable name cannot be numeric.

答案1

得分: 0

使用类似以下的代码:

public class MyPojo {

    private int id;
    private Map<Integer, String> options;

}
英文:

Use something like this

public class MyPojo {

	private int id;
	private Map&lt;Integer, String&gt; options;

}

huangapple
  • 本文由 发表于 2020年8月15日 18:43:36
  • 转载请务必保留本文链接:https://go.coder-hub.com/63425122.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定