GSON是一個(gè)Google提供的Java解析JSON的庫。它能夠?qū)SON格式字符串解析成Java對象,或者將Java對象序列化成JSON格式字符串。但是,當(dāng)JSON字符串中出現(xiàn)多余的逗號時(shí),GSON庫會(huì)拋出JsonSyntaxException異常,因?yàn)镴SON格式是固定的,包含語法要求,不能多出未知字符。
例如,下面的JSON字符串: { "name": "Tom", "age": 18, "gender": "male", "hobbies": ["reading", "swimming", ], }
可以看到,在hobbies數(shù)組的最后一個(gè)元素后面多了一個(gè)逗號。這種情況下,使用GSON庫解析JSON時(shí),就會(huì)拋出異常。為了解決這個(gè)問題,可以使用其他的JSON庫,或者修改JSON源數(shù)據(jù)。
修改JSON源數(shù)據(jù)可以使用一些在線JSON格式化工具,如JsonFormatter.org、JsonGenerator.GenerateIt.net等。在這些工具中可以輸入有問題的JSON字符串,然后格式化成規(guī)范的JSON格式,就可以解決多余逗號的問題。
經(jīng)過格式化后的JSON格式字符串如下所示: { "name": "Tom", "age": 18, "gender": "male", "hobbies": [ "reading", "swimming" ] }
可以發(fā)現(xiàn),hobbies數(shù)組的最后一個(gè)元素后面已經(jīng)沒有逗號了,符合JSON語法要求。使用GSON解析該字符串時(shí),就會(huì)得到正確的結(jié)果。