Java 从JSON到Gson的POJO

Java 从JSON到Gson的POJO,java,json,gson,Java,Json,Gson,如何将其转换为POJO?我对“langs”有点小麻烦:{}。Langs是一个具有随机变量量的Java对象吗 需要GSON工厂/改装2。问候 { "dirs": [ "ru-en", "ru-pl", "ru-hu", ... ], "langs": { "ru": "russian", "en": "english", "pl": "polish", ...

如何将其转换为POJO?我对“langs”有点小麻烦:{}。Langs是一个具有随机变量量的Java对象吗

需要GSON工厂/改装2。问候

{
    "dirs": [
        "ru-en",
        "ru-pl",
        "ru-hu",
      ...
    ],
   "langs": {
        "ru": "russian",
        "en": "english",
        "pl": "polish",
     ...
   }

} 
试试这个:

public class Example {

    @NonNull
    @SerializedName("dirs")
    public List<String> dirs;

    @NonNull
    @SerializedName("langs")
    public Map<String, String> langs;

}
公共类示例{
@非空
@序列化名称(“目录”)
公开名单目录;
@非空
@序列化名称(“langs”)
公共地图;
}
试试这个:

public class Example {

    @NonNull
    @SerializedName("dirs")
    public List<String> dirs;

    @NonNull
    @SerializedName("langs")
    public Map<String, String> langs;

}
公共类示例{
@非空
@序列化名称(“目录”)
公开名单目录;
@非空
@序列化名称(“langs”)
公共地图;
}

@Japu_D_Cret no,langs就像Java对象,有随机数量的变量:ru、en等。所以是一个简单的映射,现在呢?@a.Alex它是一个重复的映射。如果您阅读了链接问题的最佳答案,您将看到以下内容:googlegson支持泛型和嵌套bean。JSON中的[]表示一个数组,应该映射到一个Java集合,如List或一个普通Java数组。JSON中的{}表示一个对象,应该映射到Java映射或某个JavaBean类正是您的情况。@LyubomyrShaydariv简单映射在GsonConverterFactory之后为空。@Japu_D_Cret no,langs就像Java对象一样,有随机数量的变量:ru、en等。所以一个简单映射-现在呢?@a.Alex它是重复的。如果您阅读了链接问题的最佳答案,您将看到以下内容:googlegson支持泛型和嵌套bean。JSON中的[]表示一个数组,应该映射到一个Java集合,如List或一个普通Java数组。JSON中的{}表示一个对象,应该映射到Java映射或某个JavaBean类正是您的情况。@LyubomyrShaydariv简单映射在GsonConverterFactory之后为空。不起作用。Langs在GsonFactory.@A.Alex之后为空。如果我发布问题的答案,我会准确地回答:这是一个正确的POJO映射。如果您出于任何原因获得了
null
s,那么您可以在这里有两个选项:1)您正在尝试反序列化与您在问题中发布的JSON文档不匹配的JSON文档;2) 或者改装中使用的
Gson
实例已损坏。“我不相信后者。”柳波默沙伊达里夫谢谢你的帮助。我发现了问题。服务器没有发送没有特殊参数的“langs”。@A.Alex没问题。请接受这个答案,因为它对你有帮助。谢谢,没用。Langs在GsonFactory.@A.Alex之后为空。如果我发布问题的答案,我会准确地回答:这是一个正确的POJO映射。如果您出于任何原因获得了
null
s,那么您可以在这里有两个选项:1)您正在尝试反序列化与您在问题中发布的JSON文档不匹配的JSON文档;2) 或者改装中使用的
Gson
实例已损坏。“我不相信后者。”柳波默沙伊达里夫谢谢你的帮助。我发现了问题。服务器没有发送没有特殊参数的“langs”。@A.Alex没问题。请接受这个答案,因为它对你有帮助。谢谢