繁体   English   中英

C# ASP.NET MVC 使用 JSON 将字符串转换为列表

[英]C# ASP.NET MVC convert string to list using JSON

我有一个应用程序正在接收数据馈送。 执行以下代码后数据如下所示,变量“result”如下所示:

[
    { 
        "personName": "Avery Davis",
        "personOrganization": "01"
    },
    {
        "personName": "Chris Davis",
        "personOrganization": "01"
    },
    {
        "personName": "Tony Davis",
        "personOrganization": "01"
    },
    {
        "personName": "Cory Dirt",
        "personOrganization": "01"
    },
    {
        "personName": "Tyler Dirt",
        "personOrganization": "01"
    },
    {
        "personName": "Ann Ford",
        "personOrganization": "01"
    },
    {
        "personName": "Lauren Ford",
        "personOrganization": "01"
    },
    {
        "personName": "Lauren Ford",
        "personOrganization": "01"
    },
    {
        "personName": "Avery Franklin",
        "personOrganization": "01"
    }
]

我有一个 model class 看起来像这样:

public class AllPeople
{
    public List<PeopleList> data { get; set; }
}

public class PeopleList
{
    public string personName { get; set; }
    public string personOrganization { get; set; }
}

这是我用来检索数据的代码:

    private IEnumerable<PeopleList> GetPeople()
    {
        IEnumerable<PeopleList> peopleLists = null;

        var client = new WebClient();
        var data = client.DownloadData("https://localhost:44314/api/values");
        var stream = new MemoryStream(data);
        var obj = new DataContractJsonSerializer(typeof(string));
        var result = obj.ReadObject(stream).ToString();

        peopleLists = (IEnumerable<PeopleList>)JsonConvert.DeserializeObject<AllPeople>(result);            

        return peopleLists;
 }

我知道JsonConvert行不正确,但我一直未能弄清楚如何将字符串转换为列表。

有什么建议么?

谢谢。

在显示的 JSON 中,没有名为data的属性。 所以这不是AllPeople的一个实例。 显示的 JSON 只是PeopleList的数组。 (顺便说一下,对于“人”的单个实例来说,这是一个可怕的名字。)

将其反序列List<PeopleList>

peopleLists = JsonConvert.DeserializeObject<List<PeopleList>>(result);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM