JSON字符串解析报错com.alibaba.fastjson.JSONException: syntax error, position at xxx

解析JSON字符串的时候报错

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

JSON字符串解析报错com.alibaba.fastjson.JSONException: syntax error, position at xxx_第1张图片

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

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

JSON字符串解析报错com.alibaba.fastjson.JSONException: syntax error, position at xxx_第2张图片

 打包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

你可能感兴趣的:(java,json)