做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();
}