C# 将json文件反序列化为poco对象不起作用

C# 将json文件反序列化为poco对象不起作用,c#,json,json-deserialization,javascriptserializer,C#,Json,Json Deserialization,Javascriptserializer,我试图在VS项目中用.json文件中的数据实例化一个poco对象。当我使用这段代码时,它只返回一个空对象 类别: public class Person { public int id { get; set; } public string name { get; set; } } 文件中的Json文本: { "person": { "id": 1, "name": "joe" } } Program.cs中的代码:

我试图在VS项目中用.json文件中的数据实例化一个poco对象。当我使用这段代码时,它只返回一个空对象

类别:

public class Person
{
    public int id { get; set; }
    public string name { get; set; }
}
文件中的Json文本:

{
    "person": 
    {
        "id": 1,
        "name": "joe"
    }
}
Program.cs中的代码:

static void Main(string[] args)
{
    string jspath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"Json\json1.json");

    //person object results in 0 for id and null for name (empty)
    Person person = new JavaScriptSerializer().Deserialize<Person>(File.ReadAllText(jspath ));
}
static void Main(字符串[]args)
{
字符串jspath=Path.Combine(Path.GetDirectoryName(Assembly.getExecutionGassembly().Location),@“Json\json1.Json”);
//person对象的id为0,名称为null(空)
Person=newJavaScriptSerializer().Deserialize(File.ReadAllText(jspath));
}

我做错了什么?

您的JSON文件不正确

应该是:

{ "id": 1, "name": "joe" }
证明:

Person p = new Person
{
    id = 1,
    name = "joe"
};
var sb = new StringBuilder();
new JavaScriptSerializer().Serialize(p, sb);
Console.WriteLine(sb.ToString()); // Outputs: { "id": 1, "name": "joe" }