遇到一个奇怪的问题,c#通过网络读取json数据,打印出来的字符串格式符合json格式
[
{
"ip": "192.168.0.8",
"port": 8844,
"name": "一区1服"
},
{
"ip": "192.168.0.8",
"port": 8845,
"name": "一区2服"
}
]
但是通过LitJson库使用
var jd = JsonMapper.ToObject(jsonStr);
却报格式错误的问题
JsonException: Invalid character " in input string
断掉发现,解析的第一个字符居然是0xfeff
好像在哪里见过这个,很久之前我写过一篇关于BOM头的博客:
https://blog.csdn.net/linxinfa/article/details/51585110
既然这样,只需要跳过这个BOM头就好了
修改一下c#代码
if(0xfeff == jsonStr[0] || 0xfffe == jsonStr[0])
{
jsonStr = jsonStr[1];
}
var jd = JsonMapper.ToObject(jsonStr);
搞定