Java使用Gson判断字符串是否为JSON格式
配置Maven依赖
首先,在 pom.xml 文件中配置 gson 依赖项:
1 | <dependency> |
gson 版本根据实际情况进行选择,建议使用最新版本(见 Maven Central )。
本文使用的是 2.10 版本(当前最新版本)。
非严格验证
Gson 库的 JsonParser 类提供了 parseString()
方法,用于将指定的 JSON 字符串解析成 JsonElements 对象。如果指定的字符串不是有效的 JSON 格式,则在解析的过程中会抛出 JsonSyntaxException 类型异常。
我们可以使用该方法来判断字符串是否为 JSON 格式,如果在解析过程中出现错误,说明指定的字符串不是有效的 JSON 格式:
1 | public static boolean isValid(String json) { |
测试示例:
1 | public static void main(String[] args) { |
需要注意的是,该方法的默认策略认为单独的字符串、数字值作为 JsonElement 节点的一部分是有效的。也就是说,它认为单个字符串或数字是有效的 JSON 格式。
以下代码示例,演示了该方法会把单独的字符串认为是一个有效的 JSON 格式字符串:
1 | public static void main(String[] args) { |
如果想把这种情况看作是无效的 JSON 字符串,我们可以使用以下的方法进行严格验证。
严格验证
为实现严格的验证策略,需要先创建了一个 TypeAdapter 对象,并将 JsonElement 类定义为一个必要的类型匹配。然后调用 TypeAdapter 对象的 fromJson()
方法,如果指定的字符串不是有效的 JSON 对象或数组,则会抛出 JsonSyntaxException 异常。
方法的代码如下:
1 | public static boolean isValidStrictly(String json) { |
调用该方法,校验一个单独的字符串是否有效的 JSON 格式。
1 | public static void main(String[] args) { |
P.S. 本文示例代码托管在 GitHub 上。
(END)
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.