c#解析json 出现错误

stecdeng 2017-08-12 05:02:57
解析如下字符串
"{ \"userName\":\"qwe\",\"passWord\":\"qwe\"}"

自行构造string jstr = "{ \"userName\":\"qwe\",\"passWord\":\"qwe\"}”;
使用 LitJson解析JSON 成功

但是使用c#接受c++服务器发送该字符串 则解析失败
报错如下
LitJson.JsonException: Invalid character 'S' in input string

代码如下
byte[] result = new byte[1024];
int receiveLength = socket.Receive(result);
string jsonO = Encoding.ASCII.GetString(result,0,receiveLength);
LoginObject logObj = JsonMapper.ToObject<LoginObject>(jsonO);





...全文
684 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
stecdeng 2017-08-14
  • 打赏
  • 举报
回复
谢谢 情况已经解决 是C#的字符串判断和我这边CPP服务端的判断不一致造成的 由于接受到的是服务器穿来的CPP字符串 int receiveLength = socket.Receive(result); string jsonO = Encoding.ASCII.GetString(result,0,receiveLength); 所以转化的时候 receiveLength 要减1 另外对于某些回答 我只能说 C# 我确实不熟悉 这个也是和客户端同事一起调试遇到的问题 但是并不表示我没做努力和调试 请不要从的你工作习惯来猜测 我是在对于好心人的代码进行粘贴复制
  • 打赏
  • 举报
回复
引用 4 楼 stecdeng 的回复:
UTF8已经转过 未成功
其实说多少关于”编码“猜测,都是一些“好心人”给你抄点什么东西。而你也就盲目超抄了。 编程关键还是在于自己。而自己的能力则用调试来体现。
  • 打赏
  • 举报
回复
贴出你的调试画面,以及你对于 jsonO 的调试。 无调试,不以调试为基本操作(而是随便抄一段代码),根本不是专业开发。
yzy8788 2017-08-12
  • 打赏
  • 举报
回复
LitJson.JsonException: Invalid character 'S' in input string 从这句异常信息看,是传过来的字符串不符合json格式,把字符串抓出来看看,尤其留意大写S这着附近 该不会传过来的是“Service Unavailable”吧?
stecdeng 2017-08-12
  • 打赏
  • 举报
回复
UTF8已经转过 未成功
大鱼> 2017-08-12
  • 打赏
  • 举报
回复
应该是编码格式问题,可以试试用UTF-8转一下码再解析呢?
stecdeng 2017-08-12
  • 打赏
  • 举报
回复

一个是从C++服务器获取的字符串
一个是直接创建的字符串
两个查看工具中的hex 一模一样
但是调用compare 返回-1
xian_wwq 2017-08-12
  • 打赏
  • 举报
回复
先核对字符编码格式, 使用Encoding.ASCII得到的string jsonO 是否有异常字符?

110,556

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧