解析JSON字符串的时候报错

threw exception [Request processing failed; nested exception is com.alibaba.fastjson.JSONException: syntax error, position at 2036711, name home_addrr] with root cause

javajson解析错误 json解释错误_javajson解析错误

  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;
    }

然后我的开发工具打印出来的是

javajson解析错误 json解释错误_System_02

 打包jar运行打印出来的是

javajson解析错误 json解释错误_javajson解析错误_03

 修改了编码以后 , 终于可以成功解析了

修改前
@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