GSON是一種Java庫,用于將Java對(duì)象轉(zhuǎn)換為JSON格式,或?qū)SON格式轉(zhuǎn)換回Java對(duì)象。但是在解析JSON時(shí),有時(shí)會(huì)碰到JSON文件中含有空格的情況,這些空格會(huì)導(dǎo)致解析失敗。以下是解決此問題的方法。
public class Main { public static void main(String[] args) { Gson gson = new GsonBuilder().disableHtmlEscaping().create(); String json = "{\"name\": \"Tom\", \"age\": 25}"; //解決方案一:忽略空格 gson.fromJson(json.replace(" ", ""), Person.class); //解決方案二:自定義JsonReader JsonReader reader = new JsonReader(new StringReader(json)); reader.setLenient(true); gson.fromJson(reader, Person.class); } } class Person { private String name; private int age; //getter and setter }
解決方案一是通過字符串替換的方法,在解析前將JSON中的空格全部替換掉,從而避免了解析時(shí)的問題。
解決方案二是把JSON文件轉(zhuǎn)換為JsonReader對(duì)象,并將JsonReader對(duì)象的Lenient屬性設(shè)為true,表示在解析JSON時(shí)允許一些不規(guī)范的語法。當(dāng)JSON文件中有空格等字符時(shí),就可以通過這種方式解析。
下一篇python+伽馬