一个保护使用JSON的Java应用程序的方法
JSON是用于在应用程序内共享对象和数据的标准格式。对于Java,不存在对JSON处理的内置支持,但是有几种广泛使用的库可供选择。在本文中,我们将重点介绍最受欢迎的Jackson。 保护使用Jackson进行JSON处理的应用程序时,请务必注意是否使用Java对象存储JSON数据(如使用数据绑定),或者是否在没有相应Java对象的情况下完全操纵JSON数据(如Jackson一样)树模型)。这会影响我们配置混淆设置的方式。 对于数据绑定Java对象(POJO),我们需要保留get和set方法以确保适当的运行时功能。另一方面,如果我们使用树模型来操作JSON数据(没有POJO),则无需任何自定义配置就可以应用混淆。请考虑以下内容。 此示例项目使用两种不同的方式对JSON格式的字符串进行序列化和反序列化。一种方法使用不支持POJO的Jackson树模型。第二种方法使用数据绑定将JSON数据存储为POJO。以下是预期的输出: 在对jar文件应用保护之后,请注意“树模型”示例可以正常运行,但是“数据绑定”示例将引发异常: 如果按照例外说明,如果我通过在POJO中添加@JsonInclude(Include.NON_NULL)批注来允许空bean,那么我仍然会在输出中得到空结果,这也是预期的行为。 为了防止这种情况,我需要从重命名中排除Car对象的get和set方法。 这样做之后