在GSON中动态设置JSON密钥

时间:2015-07-06 21:32:43

标签: java gson

我正在编写一个通过JSON发送一些数据的GSON应用。我使用long来序列化/反序列化我的对象。我已经使用了一些对象,但是一个端点/对象给我带来了麻烦。

该应用程序的功能基本上是多项选择题。用户可以为大约10个问题选择A,B,C或D中的一个,并且根据选择,还有与此选择相关联的{ "user": "abcd1234", "pass": "abc123", "itemID": 1234, "listSelection": [ ("A", 21), ("D", 18), ("B", 34), ... ] } 值。

以下是我尝试POST的JSON示例:

listSelection

麻烦在于answer: A, value: 21对象。我无法控制API。店主送我上面的样品使用。我宁愿以user的形式拥有它,但主人想要元组。

我正在尝试使用Java创建类以使GSON创建上面的内容以通过POST发送到API,但我对此过程的理解是GSON根据变量名称命名密钥。这适用于passitemIDlistSelection,但对于密钥为动态的public class AnswerSet { private String user; private String pass; private int itemID; private List<Answer> listSelection; } 内的项目,这不起作用。我不确定是否需要将其放在地图中,或者是否在GSON中采用另一种方式动态设置密钥。

我在想这样的事情:

Answer

public class Answer { private String answer; private long answerValue; } 类可能是:

JSON

但这会错误地格式化var file = new File("path/to/some/file");

有人可以帮忙吗? 感谢。

1 个答案:

答案 0 :(得分:1)

这不是有效的JSON(尝试通过validator运行它),所以我不希望GSON能够解析它。您必须实现自己的解析器或将POST更改为有效的JSON。