c# - Json如何使用DataContractJsonSerializer?

标签 c# asp.net json

我有这样的 json 结构:

{
   "id":"12345",
   "first_name": "dino",
   "last_name": "he",
   "emails": {
      "preferred": "1",
      "personal": "2",
      "business": "3",
      "other": "4"
   }
}

我想获取Emails中的值 所以我写了两个类:

[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 中获取其他值,但是对于电子邮件,我什么也得不到。 为什么,我应该如何编写类(class)? 请帮助我!

最佳答案

我发现问题是我需要将电子邮件中的所有属性更改为小写... 我不知道为什么......但它奏效了。

关于c# - Json如何使用DataContractJsonSerializer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14959698/

相关文章:

javascript - 在 AngularJS 中提交表单后更新表格

c# - 用带连字符的姓氏人性化大写名称

c# - is 和 typeof 哪个更快

c# - 之前声明所有局部变量是否有性能提升或其他原因?

c# - 如何使用 C# 在 asp.net 中的循环中获取 texbox 的值?

c# - asp.net - 如何在 Sql 中使用变量?

c# - 在 Application Insights 依赖项跟踪中,如何设置依赖项类型和结果代码?

asp.net - 启用压缩 fontawesome-webfont.svg

Javascript/Jquery 解析 Json 请求

javascript - 如何使用node.js比较两个json数组