【发布时间】:2017-03-28 13:28:10
【问题描述】:
我正在尝试将 angular2 客户端连接到 C# ASP.net 核心服务器。当我使用 websockets 从客户端向服务器发送 JSON 字符串时,出现错误:
Unexpected character encountered while parsing value: {. Path 'Argument', line 1, position 39.
JSON字符串如下(错误似乎源于“Argument:”后的左括号):
{
"MethodName": "CreateUser",
"Argument": {
"User": {
"Attributes": [{
"Name": "age",
"Value": "30",
"Type": 0
}],
"Email": "test@mail.com",
"Name": "Test Name"
},
"Password": "1234"
}
}
抛出错误的代码在这里:
public string Receive(string input)
{
try
{
Debug.WriteLine(input);
InstructionServer jsonObject = JsonConvert.DeserializeObject<InstructionServer>(input); // This fails
string methodName = jsonObject.MethodName;
string data = jsonObject.Argument;
return methods[methodName](1, data, "", "");
}
catch (Exception e)
{
return "error: " + e.Message;
}
}
我似乎无法弄清楚错误是什么,因为当我将 JSON 放入在线 JSON 格式化程序时,它会将其报告为有效 JSON。任何帮助将不胜感激。
编辑:只是为了澄清有效的 JSON。我尝试在客户端发送之前和在服务器上接收之后打印出json字符串,它与上面写的json字符串相同。
【问题讨论】:
-
这是真实的回复还是您编辑的?即 json 中有特殊字母的地方,比如 ä。 ö、ü、é 等?
-
您是否检查了您的网络标签并查看了响应?
-
@Tseng JSON 字符串还是错误?没有特殊字母,字符串完全一样,只是我添加了换行符以使其更具可读性..
-
@AJT_82 我没有检查我的网络选项卡,但我在服务器端做了一个 Debug.WriteLine 以及在客户端做了一个 console.log。
标签: c# json angular websocket asp.net-core