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

  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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值