我正在编写一个通过 JSON 发送一些数据的 Android
应用程序。我正在使用 GSON 来序列化/反序列化我的对象。我已经可以使用一些对象来进行此操作,但是一个端点/对象给我带来了麻烦。
该应用程序的功能基本上是多项选择题。用户可以为大约 10 个问题选择 A、B、C 或 D 之一,并且根据选择,还有一个与此选择关联的 long
值。
这是我尝试 POST 的 JSON 示例:
{
"user": "abcd1234",
"pass": "abc123",
"itemID": 1234,
"listSelection": [
("A", 21),
("D", 18),
("B", 34),
...
]
}
所以问题出在 listSelection
对象上。我不控制API。店主把上面的 sample 发给我使用。我宁愿采用 answer: A, value: 21
的形式,但所有者想要元组。
我试图在Java中创建类,以使GSON创建上述内容以通过POST发送到API,但我对此过程的理解是GSON根据变量名命名键。这对于 user
、pass
和 itemID
来说很好,但对于 listSelection
中 key 是动态的项目,这不起作用。我不确定是否需要将其放入 map 中,或者 GSON 中是否有另一种方法可以动态设置 key 。
我在想这样的事情:
public class AnswerSet {
private String user;
private String pass;
private int itemID;
private List<Answer> listSelection;
}
Answer
类可能位于:
public class Answer {
private String answer;
private long answerValue;
}
但这会错误地格式化 JSON
。
有人可以帮忙吗? 谢谢。
最佳答案
这不是有效的 JSON(尝试通过 validator 运行它),所以我不希望 GSON 能够解析它。您必须实现自己的解析器或将 POST 更改为有效的 JSON。
关于java - 在GSON中动态设置JSON key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31256014/