属性值有特殊符号导致fastjson反序列化失败处理

做Java项目有一段时间了,感觉跟.net差别不是太大,遇到个小问题记录一下

1,遇到的问题是,反序列化时候对象属性值带有 & 或者 ‘(单引号)都会导致反序列化失败,并不是Json数据格式的问题

2,解决办法是采用了。这个属性对应的值进行转码处理,试过(uft8,asc)等都不行,后面采用了转 Ascii 码后处理成功

方法如下,注意空值处理

/**
 * 字符串转换为Ascii
 * @param value
 * @return
 */
public static String stringToAscii(String value)
{
    StringBuffer sbu = new StringBuffer();
    char[] chars = value.toCharArray();
    for (int i = 0; i < chars.length; i++) {
        if(i != chars.length - 1)
        {
            sbu.append((int)chars[i]).append(",");
        }
        else {
            sbu.append((int)chars[i]);
        }
    }
    return sbu.toString();
}

/**
 * Ascii转换为字符串
 * @param value
 * @return
 */
public static String asciiToString(String value)
{
    StringBuffer sbu = new StringBuffer();
    String[] chars = value.split(",");
    for (int i = 0; i < chars.length; i++) {
        sbu.append((char) Integer.parseInt(chars[i]));
    }
    return sbu.toString();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值