C# 无法反序列化JSON消息,因为属性在C中有空格#

C# 无法反序列化JSON消息,因为属性在C中有空格#,c#,json,json.net,C#,Json,Json.net,我试图使用Newtonsoft.JSON反序列化JSON消息,但他的一个属性有一个空格,结果返回null 我的反序列化邮件的代码: JavaScriptSerializer jss; jss = new JavaScriptSerializer(); using (reader = new StreamReader(stream)) { string message = reader.ReadToEnd(); JsonError jsonError = new JsonErr

我试图使用
Newtonsoft.JSON
反序列化JSON消息,但他的一个属性有一个空格,结果返回null

我的反序列化邮件的代码:

JavaScriptSerializer jss;
jss = new JavaScriptSerializer();

using (reader = new StreamReader(stream))
{
    string message = reader.ReadToEnd();

    JsonError jsonError = new JsonError();
    jsonError = jss.Deserialize<JsonError>(message);

    btxErrorMemo.Visible = true;
    btxErrorMemo.Text = errorMessage;
    btxStatusLbl.Text = "ERROR";
}
我将“错误消息”从

public IList errorMessage{get;set;}

因为我看到错误消息属于数组,而不仅仅是字符串,因此我不断得到null。

多亏了@Ryan Wilson、@Alexander Petrov和@dbc。 解决办法很简单。 我使用Nettonsoft.Json来声明Json属性,但我使用System.Web.Script.Serialization来反序列化消息。 在我的例子中,一个简单的代码更改

JavaScriptSerializer jss;    
var jsonError = jss.Deserialize<JsonError>(message);
JavaScriptSerializer jss;
var jsonError=jss.Deserialize(消息);

var jsonError=JsonConvert.DeserializeObject(消息);
成功了


谢谢大家的帮助。

JsonProperty
属性仅适用于
Newtonsoft.Json
Nuget包或
Json.net
序列化程序,参考资料您混淆了
System.Web.Script.Serialization.JavaScriptSerializer
Newtonsoft.Json.JsonSerializer
。如上所述,您使用的是
[JsonProperty]
中的一个属性,它与
JavaScriptSerializer
完全不同。您应该使用
var jsonError=JsonConvert.DeserializeObject(消息)。请参阅:。
{
    "error":"xml data validation ",
    "error message": ["\u03a4\u03bf \u03c0\u03b5\u03b4\u03af\u03bf MesIdeMES19 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03bc\u03bf\u03bd\u03b1\u03b4\u03af\u03ba\u03bf\u03c2 \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2.(\u03a0\u03c1\u03bf\u03c4\u03b5\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03af \u03bf \u03b1\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 VAT \u03c4\u03b7\u03c2 \u03b5\u03c4\u03b1\u03b9\u03c1\u03b5\u03af\u03b1\u03c2 \u03b7 \u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03ae \u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1. \u03ba\u03b1\u03b9 6 \u03c4\u03c5\u03c7\u03b1\u03af\u03b1 \u03b1\u03bb\u03c6\u03b1\u03c1\u03b1\u03c1\u03b9\u03b8\u03bc\u03b9\u03c4\u03ba\u03ac)","\u03a3\u03c4\u03bf \u03b5\u03bc\u03c0\u03cc\u03c1\u03b5\u03c5\u03bc\u03b1:1 \u03a4\u03bf \u03c0\u03ad\u03b4\u03b9\u03bf (GooDesGDS23) \u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03b5\u03af\u03b4\u03bf\u03c5\u03c2 \u03c0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03bb\u03c6\u03b1\u03c1\u03b9\u03b8\u03bc\u03b7\u03c4\u03b9\u03ba\u03cc"]
}
public string errorMessage { get; set; }
public IList<string> errorMessage { get; set; }
JavaScriptSerializer jss;    
var jsonError = jss.Deserialize<JsonError>(message);
var jsonError = JsonConvert.DeserializeObject<JsonError>(message);