首页 > 其他分享 >json反序列化 JsonConvert.DeserializeObject 报错 One or more errors occurred. (Unexpected character encoun

json反序列化 JsonConvert.DeserializeObject 报错 One or more errors occurred. (Unexpected character encoun

时间:2024-04-18 16:24:44浏览次数:29  
标签:buffer UTF8 parsing json 报错 byte 序列化 bomBuffer

接口返回的字符串肉眼看起来正常,也是标准json,反序列化时候报错,
字符串添加了UTF8-BOM头(windows记事本默认编码),
可以通过以下代码移除标头

//模拟json字符串对象
var jsonStr="{}";
byte[] buffer = Encoding.UTF8.GetBytes(jsonStr);
var sResult = Encoding.UTF8.GetString(buffer, 0, buffer.Length);
byte[] bomBuffer = new byte[] { 0xef, 0xbb, 0xbf };
if (buffer[0] == bomBuffer[0] && buffer[1] == bomBuffer[1] && buffer[2] == bomBuffer[2])
{
    int copyLength = buffer.Length - 3;
    byte[] dataNew = new byte[copyLength];
    Buffer.BlockCopy(buffer, 3, dataNew, 0, copyLength);
    sResult = System.Text.Encoding.UTF8.GetString(dataNew);
}

[参考]
C#解析json报错Unexpected character encountered while parsing value: . Path ‘‘, line 0, position 0.

标签:buffer,UTF8,parsing,json,报错,byte,序列化,bomBuffer
From: https://www.cnblogs.com/ives/p/18143726

相关文章

  • net8 linux docker sqlserver报错error: 31 - Encryption(ssl/tls) handshake failed)
    asp.netcore升级到8.0后遇到数据库不能连接问题?_已解决_博问_博客园(cnblogs.com) 中文提示:连接数据库过程中发生错误,检查服务器是否正常连接字符串是否正确,错误信息:Aconnectionwassuccessfullyestablishedwiththeserver,butthenanerroroccurredduringthep......
  • Unity Android 打包报错解决方案记录
    1.安卓版本过低报错提示PickedupJAVA_TOOL_OPTIONS:-Dfile.encoding=UTF-8D:\Develop\Unity\HRVTest\Library\Bee\Android\Prj\Mono2x\Gradle\unityLibrary\src\main\java\com\unity\androidnotifications\UnityNotificationManager.java:164:错误:找不到符号......
  • react 使用effect 的报错
    1、像这种,根据someId值的改变,每次调用一次useEffect的。如果在useEffect加上async则会出现报错 正确的做法,则是去掉useEffect上的async useEffect(()=>{asyncfunctionfetchData(){try{//在这里进行异步操作constresponse=awaitMyAPI.g......
  • jdk 21降为 1.8 报错(idea中)
    1、检测环境变量配置win+r =>cmd 检测jdk版本 java-version查看环境变量中jdk路径  echo%JAVA_HOME%2、打开IDEA的设置或首选项对话框File→Settings→ Build,Execution,Deployment”→“Compiler”,在“JavaCompiler”部分,将“Targetby......
  • 运行MongoDB 报错GLIBC_2.14 not found
    Linux环境下安装完mongodb,运行./mongod报错如下#./mongod./mongod:/lib64/libc.so.6:version`GLIBC_2.14'notfound(requiredby./mongod)使用rpm-qa|grep glibc查看系统当前的glibc版本为2.12使用如下命令查看系统glibc最高支持的版本为2.12#strings/lib64/libc.s......
  • drf序列化用APIView写编写5个接口并校验数据
    步骤:写一个类,继承Serialier在类中写字段,字段就是要序列化的字段在视图函数中,序列化类,实例化得到对象,传入该传的参数调用序列化类对象的serializer.data方法完成序列化【一】写序列化类serializer.pyfromrest_frameworkimportserializersfromrest_framework.e......
  • vscode remote-x11 ssh 连接时Another All configured authentication methods failed
    错误remote-x11-ssh插件使用ssh2扩展出现以下错误https://github.com/joelspadin/vscode-remote-x11/issues/75Error:Allconfiguredauthenticationmethodsfailed原因https://github.com/mscdex/ssh2/issues/989解决换成ed25519并修改配置......
  • 【安装记录】pip install dlib报错
    最近在复现人工智能方面的论文时,需要安装dlib包但是pipinstalldlib一直报错:又有中文乱码,又提示下面的:note:Thiserrororiginatesfromasubprocess,andislikelynotaproblemwithpip.ERROR:FailedbuildingwheelfordlibRunningsetup.pycleanfordlibFail......
  • mybtais-plus报错BuilderException: Error evaluating expression 'ew.sqlSegment !=
    在学习项目时,出现了这个报错,几经排查,发现原因:我这里是因为使用了LambdaQuery方法,不知为何就出现了冲突,导致错误,代码如下:@OverridepublicCommonUserfindByOpenId(StringopenId){returnlambdaQuery().eq(CommonUser::getOpenId,openId).one();控制台也提示到了这里有问......
  • Idea报错 【cannot access com.xxx】的【解决办法】
    正常操作代码,一个类突然标红,提示 cannotaccesscom.xxx 。执行下面操作,执行完后项目变为正常 但是如果是你代码存在异常,可不是清缓存就能解决了,就要靠自己了哈哈 第一步File知道吧! 第二步点我箭头的位置知道吧 第三步点中间的ok?意思就是清缓存并重启idea的意......