Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 转换值时出错“;09:00“;键入xamarin.forms_C#_Json_Xamarin_Xamarin.forms_Json.net - Fatal编程技术网

C# 转换值时出错“;09:00“;键入xamarin.forms

C# 转换值时出错“;09:00“;键入xamarin.forms,c#,json,xamarin,xamarin.forms,json.net,C#,Json,Xamarin,Xamarin.forms,Json.net,我很努力,但我没有发现问题,我试图在我的应用程序中显示json小时数,但我有一个错误“将值“09:00”转换为类型时出错…” 我的json获取: [ "09:00", "10:00", "11:30", "12:30", "13:30", "15:00", "16:00", "17:00"] 我的密码服务: public s

我很努力,但我没有发现问题,我试图在我的应用程序中显示json小时数,但我有一个错误“将值“09:00”转换为类型时出错…” 我的json获取:

[
"09:00",
"10:00",
"11:30",
"12:30",
"13:30",
"15:00",
"16:00",
"17:00"]
我的密码服务:

      public static async Task<List<Availabilities>> GetAvailabilities()
    {

        var userName = "marcelo";
        var passwd = "PWD.";
        var httpClient = new HttpClient();
        var authToken = Encoding.ASCII.GetBytes($"{userName}:{passwd}");
        httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(authToken));     
        
        var response = await httpClient.GetStringAsync(AppSettings.ApiUrl + "index.php/api/v1/availabilities?providerId=4&serviceId=12&date=2020-07-26");

        return JsonConvert.DeserializeObject<List<Availabilities>>(response);
       


    }
我的可用性.xaml.cs

        public ObservableCollection<Availabilities> AvailabilitiesCollection;
    public PageAvailabilities()
    {
        InitializeComponent();
        AvailabilitiesCollection = new ObservableCollection<Availabilities>();
        GetAvailabilities();

    }


    private async void GetAvailabilities()
    {

        var hours = await ApiService.GetAvailabilities();
        foreach (var hour in hours)
        {

           AvailabilitiesCollection.Add(hour.ToString());
        }
        CvAvailabilities.ItemsSource = AvailabilitiesCollection;
    }
公共可观测集合可用性集合;
公共页面可用性()
{
初始化组件();
AvailabilitiesCollection=新的ObservableCollection();
GetAvailabilities();
}
私有异步void GetAvailabilities()
{
var hours=等待ApiService.GetAvailabilities();
foreach(以小时为单位的var小时)
{
AvailabilitiesCollection.Add(hour.ToString());
}
CvAvailabilities.ItemsSource=可用性集合;
}
请有人告诉我怎么做这个请求:)?
最好的注意

您没有包含字符串的对象列表。您只有一个字符串列表

JsonConvert.DeserializeObject<List<string>>(response)
JsonConvert.DeserializeObject(响应)

您的json只是一个
字符串[]
。您需要先对其进行反序列化,然后将其转换为您的类型

var data = JsonConvert.DeserializeObject<List<string>>(response);

// using LINQ
var hours = from x in data select 
  new Availabilities { Hours = x }).ToList<Availabilities>(); 

return hours;
var data=JsonConvert.DeserializeObject(响应);
//使用LINQ
var小时=从数据选择中的x开始
新可用性{Hours=x}).ToList();
返程时间;

您好,非常感谢您的回答,但这让我感到很复杂对不起:/我使用了另一个回答,但感谢您的时间杰森:)我使用您的回答,因为这对我来说比较容易,我不是专业人士,我不了解所有事情谢谢您,杰瓦德
var data = JsonConvert.DeserializeObject<List<string>>(response);

// using LINQ
var hours = from x in data select 
  new Availabilities { Hours = x }).ToList<Availabilities>(); 

return hours;