报错内容:
JsonException: Invalid character '
LitJson.Lexer.NextToken () (at <e591cc6acad24a94a39b4890df7f7e01>:0)
需要解析的数据格式:
{
"success" : true,
"message" : "操作成功",
"code" : "0002",
"data" : {
"role" : "0",
"updateUser" : "142",
"updateTime" : "2022-04-24T17:19:33.887",
"userName" : "ceshi1",
"realName" : "测试1",
"isDeleted" : "false",
"createTime" : "2022-03-04T18:12:43",
"roleName" : "管理员",
"createUser" : "139",
"id" : "142",
}
}
解析报错原因:
由于有的协议在解密处理转换为C#的字符串时,会在末尾有“\0”字符,也就是对应ascii的空格,C#中不需要;
LitJson.dll库实现时考虑不周全,没有考虑到字符‘\0’的关系;LitJson.dll认为一个C#字符串中不应
该包含‘\0’,所以他没有处理这种情况,对于不能处理的字符他抛出异常。
解决方案:
原来的代码
Encoding.UTF8.GetString(resultArray)
修改后的代码
Encoding.UTF8.GetString(resultArray).TrimEnd('\0')
把字符串尾部的空格删除