我正在阅读Json文件并使用Newtonsoft.Json填充项目列表。我在读取一些Json文件时遇到问题,因为该属性的名称有空格,因此它与Item类的属性不同。
这很好。物品对象将分配以下值。
[
{
"FirstName": "John",
"SecondName": "Smith"
}
]
但我的Json文件是这样的,因此Item对象具有FirstName和SecondName的空值
[
{
"First Name": "John",
"Second Name": "Smith"
}
]
因此,具有FirstName和SecondName属性(见下文)的我的Item将获得一个空值。
public class Item
{
private string firstName = "";
private string secondName = "";
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
public string SecondName
{
get { return secondName; }
set { secondName = value; }
}
}
有一种简单的方法可以解决这个问题。我无法控制namings(例如Json字符串中的FirstName或First Name。
答案 0 :(得分:1)
这应该可以完成工作。
[DataContract]
public class Item
{
private string firstName= "";
private string secondName= "";
[DataMember(Name = "First Name")]
public string FirstName
{
get { return firstName; }
set { firstName= value; }
}
[DataMember(Name = "Second Name")]
public string SecondName
{
get { return secondName; }
set { secondName= value; }
}
}
如果这不够灵活,无法满足您的需求,则必须实施自定义格式 在此处阅读更多相关信息:WebApi Json.NET custom date handling
答案 1 :(得分:1)
如果您正在使用Json.NET,则可以使用JsonPropertyAttribute在JSON中指定属性的名称:
public class Item
{
private string firstName = "";
private string secondName = "";
[JsonProperty("First Name")]
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
[JsonProperty("Second Name")]
public string SecondName
{
get { return secondName; }
set { secondName = value; }
}
}