C#使用Newtonsoft.Json如何解析包含特殊字符的字串?

大地主刘发财 2017-09-08 12:37:38
例如:
用户名:kkk@gmail.com
密码:123.456@789#!
这样的字符串传到后端解析时会出现异常
"Unexpected character encountered while parsing value: k. Path '', line 0, position 0."
如何解决这样的问题?
前端是Jquery的serialize()方法直接将Form序列化了,然后传到后端。
后端只要一解析带特殊字符的JSON就会抛异常

...全文
2066 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilikeff8 2017-09-08
  • 打赏
  • 举报
回复
并没有什么问题,或者你从nuget获取最新的Newtonsoft.Json看看

        static void Main(string[] args)
        {
            Simple simple = new Simple
            {
                用户名 = "kkk @gmail.com",
                密码 = "123.456@789#!"
            };

            string json = JsonConvert.SerializeObject(simple);

            Simple result = (JsonConvert.DeserializeObject(json) as JObject).ToObject<Simple>();
        }            

        class Simple
        {
            public string 用户名;
            public string 密码;
        }
大地主刘发财 2017-09-08
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
你根本没有传 json 内容,你传的内容根本没有使用 json 格式。
搞明白了。。是我自己2B了 MVC接收参数的时候直接就反序列化完了。。。这TM本来就是个字符串了 感谢SP大神回复
xuzuning 2017-09-08
  • 打赏
  • 举报
回复
            var s = "{'用户名':'kkk@gmail.com','密码':'123.456@789#!'}";
var a = JObject.Parse(s);

foreach(var x in a) Console.WriteLine("{0} {1}", x.Key, x.Value);
  • 打赏
  • 举报
回复
你根本没有传 json 内容,你传的内容根本没有使用 json 格式。

110,538

社区成员

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

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

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