无法从JSON创建C#类

时间:2019-05-08 15:31:23

标签: c# json class

我们必须在我们的Web应用程序中使用一个新的API,并且它们给出以下JSON响应。

我使用json2csharp创建了C#类;但是,它给其中的电子邮件和电话号码指定了无效的名称。

这是有效的JSON吗?如果是这样,您可以帮忙为此创建C#类吗?

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36

3 个答案:

答案 0 :(得分:0)

首先,它是json有效格式,对于您下次不确定的地方,您可以在此网页上查看https://jsonlint.com/

关于您的第二个问题,虽然它是有效的json格式...但它实际上不是有效的c#类。因为在变量名称中您拥有数字。那么实际上制作了这个json吗?

答案 1 :(得分:0)

从技术上讲,json是有效的,但是值被解释为属性名称。如果您想要这样的话:

self.footerView.alpha = 0

然后您的json必须看起来像这样:

public class EmailAddresses
{
    public List<string> emailAddress { get; set; }
}

public class CustPhoneNumbers
{
    public List<string> custPhoneNumber { get; set; }
}

public class Customer
{
    public EmailAddresses emailAddresses { get; set; }
    public CustPhoneNumbers custPhoneNumbers { get; set; }
    public string custIDString { get; set; }
}

public class RootObject
{
    public List<Customer> customer { get; set; }
}

答案 2 :(得分:0)

此JSON有效,但很奇怪。您将需要使用Dictionary<string, List<string>>来处理电子邮件地址和电话号码,因为它们是JSON中的键而不是值。

这是您需要的类结构:

public class RootObject
{
    public List<Customer> customer { get; set; }
}

public class Customer
{
    public Dictionary<string, List<string>> emailAddress{ get; set; }
    public Dictionary<string, List<string>> custPhone{ get; set; }
    public string custIDString { get; set; }
}

将JSON反序列化为RootObject类。

这是一个有效的演示:https://dotnetfiddle.net/ZhHKJf