如何从C#上的json读取数据

Eag*_*Fox 8 c# json list object

我有以下json对象,我传递给我的c#服务器

[
    {
        "ID": 1,
        "FirstName": "Jay",
        "LastName": "Smith"
    },
    {
        "ID": 2,
        "FirstName": "Rich",
        "LastName": "Son"
    },
    {
        "ID": 3,
        "FirstName": "Emmy",
        "LastName": "Wat"
    }
]
Run Code Online (Sandbox Code Playgroud)

我像这样创建一个类

public class Person
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

当我这样做

public static string addRecord(string details)
{
    Person tempRecord = JsonConvert.DeserializeObject<Person>(details);
    string tempFN = tempRecord.FirstName;
    return tempFN;
}
Run Code Online (Sandbox Code Playgroud)

我无法得到实际结果.

我究竟做错了什么?我是否必须在Person类中创建另一个List?有帮助吗?

更新 - 我的记录来自Grid,这是我将它发送到我的服务器的方式

    var jsonD = Ext.encode(Ext.pluck(this.myGridStore.data.items, 'data'));
    Ext.Ajax.request({
        scope: this,
        method: 'POST',
        url: 'myApp/AddRecord',
        headers: { 'Content-Type': 'application/json' },
        dataType: 'json',
        jsonData: jsonD,
        success: function (response) {
        },
        failure: function (response) {
        }
    });
Run Code Online (Sandbox Code Playgroud)

Amy*_*Amy 17

您的JSON包含三个Persons 的集合,但您尝试反序列化JSON,就像它是单个一样Person.

Person tempRecord = JsonConvert.DeserializeObject<Person>(details);
Run Code Online (Sandbox Code Playgroud)

这条线需要返回一个集合Person秒.

var tempRecords = JsonConvert.DeserializeObject<List<Person>>(details);
Run Code Online (Sandbox Code Playgroud)