【问题标题】:C# ASP.NET MVC convert string to list using JSONC# ASP.NET MVC 使用 JSON 将字符串转换为列表
【发布时间】:2022-08-23 23:45:28
【问题描述】:

我有一个接收数据馈送的应用程序。执行下面的代码后数据是这样的,变量\'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\"
    }
]

我有一个看起来像这样的模型类:

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 的 sn-p,包括该人群的 json 键。这很可能是模型绑定问题。如果模型绑定正确完成,Newtonsoft.json 可以毫无问题地处理列表
  • JsonConvert.DeserializeObject&lt;List&lt;PeopleList&gt;&gt;(result)

标签: c# json


【解决方案1】:

在显示的 JSON 中,没有名为 data 的属性。所以这不是AllPeople 的实例。显示的 JSON 只是 PeopleList 的数组。 (顺便说一句,这是一个糟糕的一个名字“人”的单个实例.)

将其反序列化为List&lt;PeopleList&gt;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 2020-05-23
    相关资源
    最近更新 更多