正在将字符串解析为对象C#
本文关键字:对象 字符串 | 更新日期: 2023-09-27 17:59:11
我正在尝试将字符串解析为对象
这是绳子;
string result = {"Status":true,"StatusCode":"OK","MessageList":[[1,1,"admin@....net","Google Inc","'/Date(1469685360000)'/","Seatle","Another String"]]}
这是一节课;
[DataContract]
public class Login
{
[DataMember]
public bool Status { get; set; }
[DataMember]
public string StatusCode { get; set; }
[DataMember]
public string[] MessageList { get; set; }
}
这是代码;
Login asd = new JavaScriptSerializer().Deserialize<Login>(result);
我是这个领域的新手,所以我不太知道如何将其编码为
您的"String"实际上不是String。您应该转义引号,可以使用反斜杠,也可以使用带有双双引号的here字符串,就像这样;
@"{""Status"":true,""StatusCode"":""OK"",""MessageList"":[[1,1,""admin@....net"",""Google Inc"",""'/Date(1469685360000)'/"",""Seatle"",""Another String""]]}"
您的数据格式也与您的类不匹配,您已将MessageList声明为字符串数组,而您的数据似乎是包含另一个数组的数组。。。
MessageList
不是字符串数组,而是字符串数组。将类定义中的MessageList
属性更新为public string[][] MessageList { get; set; }
[DataContract]
public class Login
{
[DataMember]
public bool Status { get; set; }
[DataMember]
public string StatusCode { get; set; }
[DataMember]
public string[][] MessageList { get; set; }
}
现在,反序列化应该可以工作了。
static void Main(string[] args)
{
string result = "{'"Status'":true,'"StatusCode'":'"OK'",'"MessageList'":[[1,1,'"admin@....net'",'"Google Inc'",'"''/Date(1469685360000)''/'",'"Seatle'",'"Another String'"]]}";
Login asd = new JavaScriptSerializer().Deserialize<Login>(result);
Console.ReadLine();
}
尝试
Login data = Json.Decode<Login>(result);
看看msdn和这篇文章。