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