fastjson 布尔值处理

- 日理万妓 2022-09-27 15:25 468阅读 0赞

将json字符串转换成对象时,如果页面上输入的是0/1/Y/N等,但字段类型为boolean时,常规情况下会报错json类型转化错误.

处理方法简单:利用对象的set方法的多态.多写一个set方法,参数为字符串

  1. //标准的set方法
  2. public void setHasTax(boolean hasTax) {
  3. this.hasTax = hasTax;
  4. }
  5. /**
  6. * TRUE或者1或者Y,都等于true,否则为false
  7. *
  8. * @param hasTax
  9. */
  10. public void setHasTax(String hasTax) {
  11. this.hasTax=BooleanUtils.toBoolTrue(hasTax);
  12. }
  13. public class BooleanUtils {
  14. /**
  15. * 除了TURE,Y和1,其他都为false
  16. * @param s
  17. * @return
  18. */
  19. public static boolean toBoolFalse(String s){
  20. if(s!=null&&(s.equals('Y')||s.equals("1")||s.toUpperCase().equals("TRUE"))){
  21. return true;
  22. }else{
  23. return false;
  24. }
  25. }
  26. /**
  27. * 除了FALSE,N,0,null,其他都为true
  28. * @param s
  29. * @return
  30. */
  31. public static boolean toBoolTrue(String s){
  32. if(s!=null){
  33. if((s.equals('N')||s.equals("0")||s.toUpperCase().equals("FALSE"))){
  34. return false;
  35. }else{
  36. return true;
  37. }
  38. }else{
  39. return false;
  40. }
  41. }
  42. /**
  43. * 将布尔值转换为Y或者N
  44. * @param b
  45. * @return
  46. */
  47. public static String boolToStr(boolean b){
  48. if(b){
  49. return "Y";
  50. }else{
  51. return "N";
  52. }
  53. }
  54. /**
  55. * 将布尔值转换为1或者0
  56. * @param b
  57. * @return
  58. */
  59. public static int boolToInt(boolean b){
  60. if(b){
  61. return 1;
  62. }else{
  63. return 0;
  64. }
  65. }
  66. }

发表评论

表情:
评论列表 (有 0 条评论,468人围观)

还没有评论,来说两句吧...

相关阅读

    相关 关于Java的布尔

    >   摘自《Java核心技术 卷I》P36.C++注释   在C++中,数值甚至指针都可以代替布尔值。值 0 相当于布尔值false,非 0 值相当于布尔值true。