我有以下文字:
id=1
familyName=Rooney
givenName=Wayne
middleNames=Mark
dateOfBirth=1985-10-24
dateOfDeath=
placeOfBirth=Liverpool
height=1.76
twitterId=@WayneRooney
行用“ \ n”分隔,线对用“ =”分隔。
我有一个具有Id,FamilyName,GivenName等属性的Person类。
有什么简单的方法可以将上面的文本反序列化为Person对象,然后使用正确的行和对分隔符将Person对象序列化为上面的文本?
我希望可能会有类似TextSerializer的东西?
基本上,我需要从文件中读取文本,例如然后将person1.txt反序列化为Person对象。
如果可能的话,我想避免为每个属性手动对其进行硬编码。
谢谢,
最佳答案
这也是可能的解决方案。
如果可能,您可以在创建时尝试将文本格式设置为json。
因此,您不需要所有这些处理。只需使用Json.net
public class Person
{
public int id { set; get; }
public string familyName { set; get; }
public string givenName { set; get; }
public string middleNames { set; get; }
public string dateOfBirth { set; get; }
public string dateOfDeath { set; get; }
public string placeOfBirth { set; get; }
public double height { set; get; }
public string twitterId { set; get; }
}
class Program
{
static void Main(string[] args)
{
string line;
string newText = "{";
System.IO.StreamReader file = new System.IO.StreamReader("c:\\test.txt");
while ((line = file.ReadLine()) != null)
{
newText += line.Insert(line.IndexOf("=") + 1, "\"") + "\",";
}
file.Close();
newText = newText.Remove(newText.Length -1);
newText = newText.Replace("=", ":");
newText += "}";
Person Person = JsonConvert.DeserializeObject<Person>(newText);
Console.ReadLine();
}
}
希望能有所帮助。
关于c# - 如何将字符串反序列化为类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13708748/