【问题标题】:Error converting value "09:00" to type xamarin.forms将值“09:00”转换为类型 xamarin.forms 时出错
【发布时间】:2020-11-15 10:02:36
【问题描述】:

我很努力,但我没有找到我尝试在我的应用程序中显示 json 小时的问题,但我有这个错误“错误将值“09:00”转换为类型....” 我的 json GET:

[
"09:00",
"10:00",
"11:30",
"12:30",
"13:30",
"15:00",
"16:00",
"17:00"]

我的代码ApiService:

      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);
       


    }

我的可用性.cs:

   public class Availabilities
{

  public string Hours {get; set;}
}

我的可用性.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;
    }

请有人解释我如何做这个请求:) ? 最好的尊重

【问题讨论】:

    标签: c# json xamarin xamarin.forms json.net


    【解决方案1】:

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

    var data = JsonConvert.DeserializeObject<List<string>>(response);
    
    // using LINQ
    var hours = from x in data select 
      new Availabilities { Hours = x }).ToList<Availabilities>(); 
    
    return hours;
    

    【讨论】:

    • 您好,非常感谢您的回答,但它让我很抱歉:/ 我使用其他回复,但感谢您抽出宝贵时间 Jason :)
    【解决方案2】:

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

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

    【讨论】:

    • 我使用你的答案,因为这对我来说更容易我不是专业人士,我什么都不懂,谢谢 Jawad
    猜你喜欢
    • 2017-05-25
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多