如何在C#中读取JSON数据

8
我有以下JSON对象,我将其传递到我的C#服务器:
[
    {
        "ID": 1,
        "FirstName": "Jay",
        "LastName": "Smith"
    },
    {
        "ID": 2,
        "FirstName": "Rich",
        "LastName": "Son"
    },
    {
        "ID": 3,
        "FirstName": "Emmy",
        "LastName": "Wat"
    }
]

我创建了一个类,代码如下:
public class Person
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

}

当我执行这个操作时

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

我得不到实际的结果。

我做错了什么?我需要在Person类中创建另一个列表吗?有人能帮帮我吗?

更新 - 我的记录来自网格,以下是我将其发送到服务器的方式

    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) {
        }
    });
1个回答

17

你的 JSON 包含了三个 Person,但是你试图将其反序列化为单个 Person

Person tempRecord = JsonConvert.DeserializeObject<Person>(details);

这行代码需要返回一个Person集合。

var tempRecords = JsonConvert.DeserializeObject<List<Person>>(details);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接