很多人是在轉換時特殊字符被替換成了unicode編程格式,而我碰到的類似,只不過是后台轉換成json字符串到前端,前端解析時 '' 雙引號和 / 斜杠被原樣轉換,沖突了json的關鍵字符,導致解析時提示某某位置有錯誤.
解決方法,總有一款適合你:
Gson gs = new GsonBuilder() .setPrettyPrinting() .disableHtmlEscaping() .create();
①Gson gson = new Gson(); gson.toString(obj); 會對HTML_SAFE_REPLACEMENT_CHARS數組中的字符串進行替換 ②GsonBuilder gsonBuilder = new GsonBuilder(); Gson gson = builder.create(); gson.toString(obj); 會對HTML_SAFE_REPLACEMENT_CHARS數組中的字符串進行替換 ③ GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.disableHtmlEscaping(); Gson gson = builder.create(); gson.toString(obj); 會對REPLACEMENT_CHARS數組中的字符串進行替換
優點:找到對應方法自然省去了后台繁雜低效率的對大字符串進行替換操作
Gson gson = new GsonBuilder() .excludeFieldsWithoutExposeAnnotation() //不對沒有用@Expose注解的屬性進行操作 .enableComplexMapKeySerialization() //當Map的key為復雜對象時,需要開啟該方法 .serializeNulls() //當字段值為空或null時,依然對該字段進行轉換 .setDateFormat("yyyy-MM-dd HH:mm:ss:SSS") //時間轉化為特定格式 .setPrettyPrinting() //對結果進行格式化,增加換行 .disableHtmlEscaping() //防止特殊字符出現亂碼 .registerTypeAdapter(User.class,new UserAdapter()) //為某特定對象設置固定的序列或反序列方式,自定義Adapter需實現JsonSerializer或者JsonDeserializer接口 .create();
