gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 07:14:26 25 4
gpt4 key购买 nike

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

 "type": "both", "value": ["numbercodes", [1, 2, 3]] 

正如您所看到的,“值”是字符串列表,后跟整数数组,那么我如何表示字符串和数字的异构列表

以下代码将不起作用:

class X
{
String type;
List<List<String>> value;
}

或者甚至以下代码也不起作用:

class Value
{
String x1;
List<Integer> x2;
}
class X
{
String type;
Value value;
}

并且:

Gson gson = new Gson();
X x = new X();
String jsonString = gson.toString(x);

但是 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));

关于java - 使用字符串和整数的异构列表定义 GSON 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38685721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com