解析JSON字符串的时候报错
threw exception [Request processing failed; nested exception is com.alibaba.fastjson.JSONException: syntax error, position at 2036711, name home_addrr] with root cause
1. 首先怀疑是json文件里面有转义字符或者有单引号之类的错误, 通过格式化工具处理后并没有问题.
2. 怀疑是fastjson的问题 . 又引了gson . sfjson也都不能成功解析
3. 怀疑是编码问题 , 因为这个问题是在开发工具运行能正常解析 , 打包运行以后就解析不成功.
在解析之前调用witerCode方法打印编码
private static void witerCode() {
System.out.println("Default Charset=" + Charset.defaultCharset());
System.out.println("file.encoding=" + System.getProperty("file.encoding"));
System.out.println("Default Charset=" + Charset.defaultCharset());
System.out.println("Default Charset in Use=" + getDefaultCharSet());
}
private static String getDefaultCharSet() {
OutputStreamWriter writer = new OutputStreamWriter(new ByteArrayOutputStream());
String enc = writer.getEncoding();
return enc;
}
然后我的开发工具打印出来的是
打包jar运行打印出来的是
修改了编码以后 , 终于可以成功解析了
修改前
@echo off
title GetCriminal:8099
java -jar -Dspring.profiles.active= .\service-demo-1.0.0-SNAPSHOT.jar
pause
修改后
@echo off
title GetCriminal:8099
java -Dfile.encoding=utf-8 -jar -Dspring.profiles.active= .\service-demo-1.0.0-SNAPSHOT.jar
pause