Unity3D使用LitJson.dll解析报错问题

报错内容:

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

把字符串尾部的空格删除

猜你喜欢

转载自blog.csdn.net/qq_29194615/article/details/124407049