A ProtocolObject must begin with '{' at character 1 of ?{

今日碰到一个导入的问题?
导出txt文件,再导入时碰到异常:异常 A ProtocolObject must begin with '{' at character 1 of ?{

经过分析后,异常原因:

异常的原因是JSON串不符合规范,没有以"{"开头或者以"}"截尾。
经查询这个问题行程的原因通常有几种:
1.json文件是正常的,仍然有这个异常信息这个是因为你的json文件头里带有编码字符(如UTF-8等),读取字符串时json串是正常的,但是解析就有异常,一般会出现这样的情况是读取的json串是来自于服务器或本地的文件,文件头里自带编码。
2.json字符串在传输中会受到操作系统的影响,不同的操作系统中io数据流占用的字节不一样,会对json串产生位移导致问题。

经过排查后原因为第一种

   // 导出文件为json时,采用方式一没问题,导出txt文件时,有异常:A ProtocolObject must begin with '{' at character 1 of ?{ 
   // Map jsonToMap = JsonUtils.jsonToMap(jsonStr); 
   // 方式二:解决txt异常问题
   JSONObject jsonTemp=(JSONObject) JSONObject.toJSON(JSON.parse(jsonStr));
   Map jsonToMap = new JSONObject(jsonTemp);
posted @ 2022-11-30 10:50  鲸鱼zhang  阅读(370)  评论(0编辑  收藏  举报