JSon string return null 在 C# 控制台应用程序中使用 DeserializeObject
JSon string return null using DeserializeObject in C# Console Application
我正在按照此 sample code 反序列化 json 字符串。它工作正常,但是,当我用我的 Json 尝试相同时,我得到了 null。下面是我在 C# 控制台应用程序中反序列化 json 字符串的源代码。请帮我弄清楚我缺少什么以便反序列化。
public class Account
{
public string AgentTradeAssociation { get; set; }
public string AccountNoAgentTradeAssociation { get; set; }
public string Event { get; set; }
public string AgentPoint { get; set; }
public string BillTo { get; set; }
}
public class Program
{
static void Main(string[] args)
{
string json = @"[{'F1':'AgentTradeAssociation','F2':'AccountNoAgentTradeAssociation','F3':'Event','F4':'AgentPoint','F5':'BillTo'},{'F1':'This be Corporation - TW','F2':'ACC-XYZ-R21RLF','F3':'XYZ Manufacturing 2018','F4':'Old (1)','F5':'This be Corp'}]";
Account[] account = JsonConvert.DeserializeObject<Account[]>(json);
Console.ReadLine();
}
}
查看您的 JSON,您有属性的名称和反向值,例如F1
的值为 AgentTradeAssociation
。要反序列化 JSON 你需要 类 看起来像这样:
public class Class1
{
public string F1 { get; set; }
public string F2 { get; set; }
public string F3 { get; set; }
public string F4 { get; set; }
public string F5 { get; set; }
}
除此之外,根据您对 Account
的定义,Account
对象的 JSON 应该如下所示:
{
"AgentTradeAssociation": "string",
"AccountNoAgentTradeAssociation": "string",
"Event": "string",
"AgentPoint": "string",
"BillTo": "string"
}
您正在根据 JSON 数组传入此模式:
{
"F1": "AgentTradeAssociation",
"F2": "NoAgentTradeAssociation",
....
}
这不是您在 C# 中定义的 Account
类型。
我正在按照此 sample code 反序列化 json 字符串。它工作正常,但是,当我用我的 Json 尝试相同时,我得到了 null。下面是我在 C# 控制台应用程序中反序列化 json 字符串的源代码。请帮我弄清楚我缺少什么以便反序列化。
public class Account
{
public string AgentTradeAssociation { get; set; }
public string AccountNoAgentTradeAssociation { get; set; }
public string Event { get; set; }
public string AgentPoint { get; set; }
public string BillTo { get; set; }
}
public class Program
{
static void Main(string[] args)
{
string json = @"[{'F1':'AgentTradeAssociation','F2':'AccountNoAgentTradeAssociation','F3':'Event','F4':'AgentPoint','F5':'BillTo'},{'F1':'This be Corporation - TW','F2':'ACC-XYZ-R21RLF','F3':'XYZ Manufacturing 2018','F4':'Old (1)','F5':'This be Corp'}]";
Account[] account = JsonConvert.DeserializeObject<Account[]>(json);
Console.ReadLine();
}
}
查看您的 JSON,您有属性的名称和反向值,例如F1
的值为 AgentTradeAssociation
。要反序列化 JSON 你需要 类 看起来像这样:
public class Class1
{
public string F1 { get; set; }
public string F2 { get; set; }
public string F3 { get; set; }
public string F4 { get; set; }
public string F5 { get; set; }
}
除此之外,根据您对 Account
的定义,Account
对象的 JSON 应该如下所示:
{
"AgentTradeAssociation": "string",
"AccountNoAgentTradeAssociation": "string",
"Event": "string",
"AgentPoint": "string",
"BillTo": "string"
}
您正在根据 JSON 数组传入此模式:
{
"F1": "AgentTradeAssociation",
"F2": "NoAgentTradeAssociation",
....
}
这不是您在 C# 中定义的 Account
类型。