• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
cnsdhzzl
博客园    首页    新随笔    联系   管理    订阅  订阅
GSON使用之对特殊字符的转换的处理

很多人是在转换时特殊字符被替换成了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();

 

posted on 2017-09-08 09:27  cnsdhzzl  阅读(11704)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3