2017-07-06 70 views
0

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

我该如何解决这个问题?

+0

你承诺使用GSON,还是你愿意考虑其他库的序列化/反序列化? – RemedialBear

+0

一种致力于使用GSON的项目,因为它是我无法做出决定的项目。 – user7434041

回答

0

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

编辑

假设你被卡住GSON,它不会出现使用成为可能相同的类用不同的键读取和写入相同的字段。当其他框架通过从getter和setter进行序列化和反序列化并在这些方法上寻找自定义装饰器来实现这一点时,他们决定现在只使用字段,according to the GSON design document(请参阅使用字段vs获取器来指示Json元素)。

EDIT2

作为一种解决办法,我可能会建议创建一个可从原始对象实例被实例化,但具有的字段名称,你想为串行化回JSON另一个POJO。这将会有点破绽,但是你可以将它封装在主类的ToJSON()方法中,以便在序列化时保持干净。