json反序列化 JsonConvert.DeserializeObject 报错 One or more errors occurred. (Unexpected character encountered while parsing value: . Path '', line 0, position 0.

接口返回的字符串肉眼看起来正常,也是标准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.

posted @   Hey,Coder!  阅读(979)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示