C# 错误:无法从System.String强制转换或转换

C# 错误:无法从System.String强制转换或转换,c#,asp.net,json,asp.net-core,C#,Asp.net,Json,Asp.net Core,我遇到以下错误:ArgumentException:在尝试将json文件中的数据转换为字符串时,无法从System.String转换为API_STA_1.Classes.ProjectEnPersoneData. 我尝试获取的值是“不可用”,当我尝试获取其他值时,它确实起作用,但仅此值不起作用 JSON: 您从网络客户端获得的响应似乎有问题。我成功地将您的JSON解析到您的类中。使用以下命令 static void Main(string[] args) {

我遇到以下错误:
ArgumentException:在尝试将json文件中的数据转换为字符串时,无法从System.String转换为API_STA_1.Classes.ProjectEnPersoneData.

我尝试获取的值是
“不可用”
,当我尝试获取其他值时,它确实起作用,但仅此值不起作用

JSON:


您从网络客户端获得的响应似乎有问题。我成功地将您的JSON解析到您的类中。使用以下命令

    static void Main(string[] args)
    {
        var json = @"{""color"": ""red"", ""title"": ""Random Title"", 
        ""unavailable"": [""2010-10-09"", ""2010-10-19"", ""2010-10-20"",""2010-10- 
        29""]}";

        var res = JsonConvert.DeserializeObject<PDATA>(json);
        foreach (var item in res.unavailable)
        {
            Console.WriteLine(item);
        }

        Console.ReadLine();
    }

    public class PDATA
    {
        public string[] unavailable { get; set; }
        public string title { get; set; }
        public string color { get; set; }
    }
static void Main(字符串[]args)
{
var json=@“{”颜色“:”红色“,”标题“:”随机标题“,
“不可用”:[“2010-10-09”、“2010-10-19”、“2010-10-20”、“2010-10-20”
29""]}";
var res=JsonConvert.DeserializeObject(json);
foreach(资源中的变量项不可用)
{
控制台写入线(项目);
}
Console.ReadLine();
}
公共类PDATA
{
公共字符串[]不可用{get;set;}
公共字符串标题{get;set;}
公共字符串颜色{get;set;}
}

如果不引用序列化字符串,很难说出来。添加以下内容并检查

var json=webclinet.DownloadString(路径);
var jsonResult=JsonConvert.DeserializeObject(json.ToString();
var jsonObject=JsonConvert.DeserializeObject(jsonResult);

首先我要澄清这个问题

OP有C类课程:

C#类型和JSON结构之间不匹配:

JSON中的
Unavailable
是字符串数组,而在C#class
projects和users中
是类型为
ProjectenEnPersoneelDATA
的对象数组。这导致了异常

要解决此问题,您需要将C#类型调整为:

public class ProjectsAndUsers
{
    public string[] unavailable { get; set;}
    public IList<ProjectenEnPersoneelDATA> Types { get; set; }
}


public class ProjectenEnPersoneelDATA
{
    public string title { get; set; }
    public string color { get; set;}
}
公共类项目和用户
{
公共字符串[]不可用{get;set;}
公共IList类型{get;set;}
}
公共类项目NPERSONEELDATA
{
公共字符串标题{get;set;}
公共字符串颜色{get;set;}
}

json中包含
unavailable
的父对象是什么样子的?@weichch Ok
projects和users
类是什么样子的?它是否有
unavailable
属性?是的,仍然是相同的错误@T.v.A.您可以发布下载的字符串吗?对不起,我不明白,您想让我发布什么?您在var json中获得的值从webClient.DownloadString()获取的json字符串中一定有问题,请发布该序列化值。
{
  "unavailable": [
    "2019-10-09",
    "2019-10-14",
    "2019-10-15",
    "2019-12-21",
    "2019-12-14",
    "2019-12-02",
    "2019-12-08"
  ],
  "types": [
    {
      "title": "Veiligheidsinspectie",
      "color": "#FF9D00"
    },
    {
      "title": "Kwaliteitscontrole",
      "color": "#B434DB"
    },
    {
      "title": "Bezet",
      "color": "#252525"
    }
  ]
}
public class ProjectsAndUsers
{
    public string[] unavailable { get; set;}
    public IList<ProjectenEnPersoneelDATA> Types { get; set; }
}


public class ProjectenEnPersoneelDATA
{
    public string title { get; set; }
    public string color { get; set;}
}