使用相同的结构但不同的字段名称反序列化Json

时间:2015-11-18 10:04:10

标签: java json gson

我有以下两个Jsons

"attrs": {
        "rect": {
            "fill": "blue"
        },
        "text": {
            "fill": "white",
            "text": "my box"
        }
    }

"attrs": {
        "circle": {
            "fill": "red"
        },
        "text": {
            "text": "my circle",
            "fill": "yellow"
        }
    }

有没有办法在解析时将JSON反序列化到特定的类class Rectclass Circle?我正在使用Gson 2.4

这就是我现在所说的:

Element[] element = gson.fromJson(arguments.toJson(), Element[].class);

Element类具有这种结构

public class Element {
    private Attributes attr;

public class Attributes{
        private Rectangle rect;
        private Circle circle;
    }

我如何告诉gson选择其中一个字段?现在其中一个将是空的,我不想要,因为我会有更多的形状。

1 个答案:

答案 0 :(得分:0)

如果"圈"或" rect"永远是第一个孩子,你可以编写简单的if else逻辑来确定用于反序列化的类。