将JSON转换为POJO并返回时更改名称

时间:2017-07-06 15:48:33

标签: json json-deserialization

我从端点获取JSON,然后使用GSON将其转换为POJO。我需要操纵一些数据并将其转换回JSON,但名称不同。如果我使用@SerializedName,当它从JSON转换为POJO时名称会更改,但是当我转换回JSON时会再次更改。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果您愿意从GSON切换到杰克逊,那么您可以看到this other Stack Overflow question的解决方案

修改

假设您遇到了GSON,使用相同的类来读取和写入具有不同键的相同字段似乎不可能。虽然其他框架通过从getter和setter执行序列化和反序列化以及在这些方法上查找自定义装饰器来实现此目的,according to the GSON design document(参见使用字段vs getters来指示Json元素),他们决定现在只使用字段。

<强> EDIT2

作为一种解决方法,我可能会建议创建另一个POJO,它可以从原始对象实例中实例化,但具有您希望序列化回JSON的字段名称。这将是一个小hack-y,但你可以将它封装在主类的ToJSON()方法中,以便在进行序列化时保持清洁。