gson 如何在转换为json时使用子类作为key?

oknrviil  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(157)

我有家长课

public interface Country {    
}

和一个子类

public class India implements Country {
    public String language;
}

在main方法中,我这样写:

public static void main(String[] args) {
        India c = new India();
        c.language = "Hindi";
        Team a = new Team();
        a.setCountry(c);
        System.out.println(new Gson().toJson(a));
    }

输出

{"country":{"language":"Hindi"}}

有什么方法可以让我用gson得到如下输出吗

{"India":{"language":"Hindi"}}
qnyhuwrf

qnyhuwrf1#

我可以在使用Map时做到这一点,但不知道有什么解决方案可以在POJO方法中做到这一点。

public static void main(String[] args) {
    India c = new India();
    c.language = "Hindi";
    Map<String, Object> a = new LinkedHashMap<>();
    a.put(c.getClass().getSimpleName(), c);
    System.out.println(new Gson().toJson(a));
}
//{"India":{"language":"Hindi"}}

相关问题