Java 使用字符串和整数的异构列表为GSON定义类

Java 使用字符串和整数的异构列表为GSON定义类,java,json,gson,Java,Json,Gson,我想使用GSON将对象转换为json字符串。 json字符串是 "type": "both", "value": ["numbercodes", [1, 2, 3]] 正如你们所看到的,“值”是字符串列表,后跟整数数组,那个么我如何表示字符串和数字的异类列表呢 以下代码不起作用: class X { String type; List<List<String>> value; } 但jsonString的价值不会如预期的那样 “类型”:“两者”,“

我想使用GSON将对象转换为json字符串。 json字符串是

 "type": "both", "value": ["numbercodes", [1, 2, 3]] 
正如你们所看到的,“值”是字符串列表,后跟整数数组,那个么我如何表示字符串和数字的异类列表呢

以下代码不起作用:

class X
{
    String type;
    List<List<String>> value;
}
但jsonString的价值不会如预期的那样

“类型”:“两者”,“值”:[“数字代码”,[1,2,3]]


那么,我应该如何定义我的类“X”,以使我得到json字符串以上的内容。

最好的解决方案是重构数据模型。编写代码时一定要让其他开发人员清楚,这样他们才能理解模型所代表的内容。应如以下示例所示:

{
    "type": "both",
    "someKey": "numbercodes",
    "arrayOfIntegers": [1, 2, 3]
}
然后您的实体类将是:

class Entity {
    String type;
    String someKey;
    List<Integer> arrayOfIntegers;
}
class Entity {
    String type;
    List<Object> value = new ArrayList<>();
    ...
    public void addValue(Object valueToAdd){
        value.add(valueToAdd);
    }
}

...

Entity entity = new Entity();
entity.setType("both");
entity.addValue("numbercodes");
entity.addValue(Arrays.asList(1,2,3));
类实体{
字符串类型;
字符串someKey;
列出数组查找器;
}
当前的模型并没有真正说明“numbercode”和整数数组是什么。有很多方法可以改变它,我刚刚提出了一个

编辑:

如果您真的想继续使用当前模型,则应该:

class Entity {
    String type;
    String someKey;
    List<Integer> arrayOfIntegers;
}
class Entity {
    String type;
    List<Object> value = new ArrayList<>();
    ...
    public void addValue(Object valueToAdd){
        value.add(valueToAdd);
    }
}

...

Entity entity = new Entity();
entity.setType("both");
entity.addValue("numbercodes");
entity.addValue(Arrays.asList(1,2,3));
类实体{
字符串类型;
列表值=新的ArrayList();
...
public void addValue(要添加的对象值){
value.add(valueToAdd);
}
}
...
实体=新实体();
实体。集合类型(“两者”);
实体增值(“数字代码”);
addValue(Arrays.asList(1,2,3));

谢谢达米亚诺。。。我没有自己的服务器,所以我必须坚持使用服务器期望的JSON字符串