我JSON結構是這樣的:如何使用DataContractJsonSerializer for Json?
{
"id":"12345",
"first_name": "dino",
"last_name": "he",
"emails": {
"preferred": "1",
"personal": "2",
"business": "3",
"other": "4"
}
}
我想在電子郵件 價值所以我寫兩個類:
[DataContract]
public class UserInformation
{
[DataMember(Name = "id")]
public string ID { get; set; }
[DataMember(Name = "emails")]
public Emails emails { get; set; }
[DataMember(Name = "last_name")]
public string Name { get; set; }
}
[DataContract]
public class Emails
{
[DataMember(Name = "preferred")]
public string Preferred { get; set; }
[DataMember(Name = "personal")]
public string Account { get; set; }
[DataMember(Name = "business")]
public string Personal { get; set; }
[DataMember(Name = "other")]
public string Business { get; set; }
}
而且 我寫這樣的代碼:
StreamReader stream = new StreamReader(@"C:\Visual Studio 2012\Projects\ASP.net\WebApplication1\WebApplication2\TextFile1.txt");
string text = stream.ReadToEnd();
stream.Close();
byte[] byteArray = Encoding.UTF8.GetBytes(text);
MemoryStream stream1 = new MemoryStream(byteArray);
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(UserInformation));
var info = serializer.ReadObject(stream1) as UserInformation;
stream1.Close();
有關信息,我可以在UserInformation中獲得其他值,但對於電子郵件,我什麼也得不到。 爲什麼,我應該怎麼寫班? 請幫幫我!
你是什麼意思,你什麼都得不到? 'info.emails'沒有任何價值嗎?你確定你正在閱讀正確的文件嗎? – 2013-02-19 14:33:02
是的,我敢肯定,問題是我需要將電子郵件中的屬性更改爲小寫! 我不知道爲什麼...但似乎我改變他們爲小寫,他們可以工作! – EthenHY 2013-02-20 02:54:02